// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'libavcodec.pas' rev: 30.00 (Windows)

#ifndef LibavcodecHPP
#define LibavcodecHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <ffmpeg_types.hpp>
#include <libavutil.hpp>

//-- user supplied -----------------------------------------------------------

namespace Libavcodec
{
//-- forward type declarations -----------------------------------------------
struct AVProfile;
struct AVCodecDescriptor;
struct AVCodecHWConfig;
struct RcOverride;
struct AVPanScan;
struct AVCPBProperties;
struct AVPacketSideData;
struct AVPacket;
struct DECLSPEC_DRECORD AVCodecInternal
{
};


struct DECLSPEC_DRECORD AVCodecDefault
{
};


struct avcodec;
struct AVCodecContext;
struct DECLSPEC_DRECORD MpegEncContext
{
};


struct AVHWAccel;
struct AVPicture;
struct AVSubtitleRect;
struct AVSubtitle;
struct AVCodecParameters;
struct AVCodecParserContext;
struct AVCodecParser;
struct AVBitStreamFilterContext;
struct DECLSPEC_DRECORD AVBSFInternal
{
};


struct AVBSFContext;
struct AVBitStreamFilter;
struct DECLSPEC_DRECORD AVBSFList
{
};


struct DECLSPEC_DRECORD AVVorbisParseContext
{
};


struct vaapi_context;
struct AVDCT;
struct AVMediaCodecContext;
struct DECLSPEC_DRECORD AVMediaCodecBuffer
{
};


struct FFTComplex;
struct DECLSPEC_DRECORD FFTContext
{
};


struct DECLSPEC_DRECORD RDFTContext
{
};


struct DECLSPEC_DRECORD DCTContext
{
};


struct AVDVProfile;
struct DiracVersionInfo;
struct AVDiracSeqHeader;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM AVCodecID : unsigned int { AV_CODEC_ID_NONE, AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_H261, AV_CODEC_ID_H263, AV_CODEC_ID_RV10, AV_CODEC_ID_RV20, AV_CODEC_ID_MJPEG, AV_CODEC_ID_MJPEGB, AV_CODEC_ID_LJPEG, AV_CODEC_ID_SP5X, AV_CODEC_ID_JPEGLS, AV_CODEC_ID_MPEG4, AV_CODEC_ID_RAWVIDEO, AV_CODEC_ID_MSMPEG4V1, AV_CODEC_ID_MSMPEG4V2, AV_CODEC_ID_MSMPEG4V3, AV_CODEC_ID_WMV1, AV_CODEC_ID_WMV2, AV_CODEC_ID_H263P, AV_CODEC_ID_H263I, AV_CODEC_ID_FLV1, AV_CODEC_ID_SVQ1, AV_CODEC_ID_SVQ3, AV_CODEC_ID_DVVIDEO, AV_CODEC_ID_HUFFYUV, AV_CODEC_ID_CYUV, AV_CODEC_ID_H264, AV_CODEC_ID_INDEO3, AV_CODEC_ID_VP3, AV_CODEC_ID_THEORA, AV_CODEC_ID_ASV1, AV_CODEC_ID_ASV2, AV_CODEC_ID_FFV1, AV_CODEC_ID_4XM, AV_CODEC_ID_VCR1, AV_CODEC_ID_CLJR, 
	AV_CODEC_ID_MDEC, AV_CODEC_ID_ROQ, AV_CODEC_ID_INTERPLAY_VIDEO, AV_CODEC_ID_XAN_WC3, AV_CODEC_ID_XAN_WC4, AV_CODEC_ID_RPZA, AV_CODEC_ID_CINEPAK, AV_CODEC_ID_WS_VQA, AV_CODEC_ID_MSRLE, AV_CODEC_ID_MSVIDEO1, AV_CODEC_ID_IDCIN, AV_CODEC_ID_8BPS, AV_CODEC_ID_SMC, AV_CODEC_ID_FLIC, AV_CODEC_ID_TRUEMOTION1, AV_CODEC_ID_VMDVIDEO, AV_CODEC_ID_MSZH, AV_CODEC_ID_ZLIB, AV_CODEC_ID_QTRLE, AV_CODEC_ID_TSCC, AV_CODEC_ID_ULTI, AV_CODEC_ID_QDRAW, AV_CODEC_ID_VIXL, AV_CODEC_ID_QPEG, AV_CODEC_ID_PNG, AV_CODEC_ID_PPM, AV_CODEC_ID_PBM, AV_CODEC_ID_PGM, AV_CODEC_ID_PGMYUV, AV_CODEC_ID_PAM, AV_CODEC_ID_FFVHUFF, AV_CODEC_ID_RV30, AV_CODEC_ID_RV40, AV_CODEC_ID_VC1, AV_CODEC_ID_WMV3, AV_CODEC_ID_LOCO, AV_CODEC_ID_WNV1, AV_CODEC_ID_AASC, AV_CODEC_ID_INDEO2, AV_CODEC_ID_FRAPS, 
	AV_CODEC_ID_TRUEMOTION2, AV_CODEC_ID_BMP, AV_CODEC_ID_CSCD, AV_CODEC_ID_MMVIDEO, AV_CODEC_ID_ZMBV, AV_CODEC_ID_AVS, AV_CODEC_ID_SMACKVIDEO, AV_CODEC_ID_NUV, AV_CODEC_ID_KMVC, AV_CODEC_ID_FLASHSV, AV_CODEC_ID_CAVS, AV_CODEC_ID_JPEG2000, AV_CODEC_ID_VMNC, AV_CODEC_ID_VP5, AV_CODEC_ID_VP6, AV_CODEC_ID_VP6F, AV_CODEC_ID_TARGA, AV_CODEC_ID_DSICINVIDEO, AV_CODEC_ID_TIERTEXSEQVIDEO, AV_CODEC_ID_TIFF, AV_CODEC_ID_GIF, AV_CODEC_ID_DXA, AV_CODEC_ID_DNXHD, AV_CODEC_ID_THP, AV_CODEC_ID_SGI, AV_CODEC_ID_C93, AV_CODEC_ID_BETHSOFTVID, AV_CODEC_ID_PTX, AV_CODEC_ID_TXD, AV_CODEC_ID_VP6A, AV_CODEC_ID_AMV, AV_CODEC_ID_VB, AV_CODEC_ID_PCX, AV_CODEC_ID_SUNRAST, AV_CODEC_ID_INDEO4, AV_CODEC_ID_INDEO5, AV_CODEC_ID_MIMIC, AV_CODEC_ID_RL2, AV_CODEC_ID_ESCAPE124, AV_CODEC_ID_DIRAC, 
	AV_CODEC_ID_BFI, AV_CODEC_ID_CMV, AV_CODEC_ID_MOTIONPIXELS, AV_CODEC_ID_TGV, AV_CODEC_ID_TGQ, AV_CODEC_ID_TQI, AV_CODEC_ID_AURA, AV_CODEC_ID_AURA2, AV_CODEC_ID_V210X, AV_CODEC_ID_TMV, AV_CODEC_ID_V210, AV_CODEC_ID_DPX, AV_CODEC_ID_MAD, AV_CODEC_ID_FRWU, AV_CODEC_ID_FLASHSV2, AV_CODEC_ID_CDGRAPHICS, AV_CODEC_ID_R210, AV_CODEC_ID_ANM, AV_CODEC_ID_BINKVIDEO, AV_CODEC_ID_IFF_ILBM, AV_CODEC_ID_KGV1, AV_CODEC_ID_YOP, AV_CODEC_ID_VP8, AV_CODEC_ID_PICTOR, AV_CODEC_ID_ANSI, AV_CODEC_ID_A64_MULTI, AV_CODEC_ID_A64_MULTI5, AV_CODEC_ID_R10K, AV_CODEC_ID_MXPEG, AV_CODEC_ID_LAGARITH, AV_CODEC_ID_PRORES, AV_CODEC_ID_JV, AV_CODEC_ID_DFA, AV_CODEC_ID_WMV3IMAGE, AV_CODEC_ID_VC1IMAGE, AV_CODEC_ID_UTVIDEO, AV_CODEC_ID_BMV_VIDEO, AV_CODEC_ID_VBLE, AV_CODEC_ID_DXTORY, 
	AV_CODEC_ID_V410, AV_CODEC_ID_XWD, AV_CODEC_ID_CDXL, AV_CODEC_ID_XBM, AV_CODEC_ID_ZEROCODEC, AV_CODEC_ID_MSS1, AV_CODEC_ID_MSA1, AV_CODEC_ID_TSCC2, AV_CODEC_ID_MTS2, AV_CODEC_ID_CLLC, AV_CODEC_ID_MSS2, AV_CODEC_ID_VP9, AV_CODEC_ID_AIC, AV_CODEC_ID_ESCAPE130, AV_CODEC_ID_G2M, AV_CODEC_ID_WEBP, AV_CODEC_ID_HNM4_VIDEO, AV_CODEC_ID_HEVC, AV_CODEC_ID_FIC, AV_CODEC_ID_ALIAS_PIX, AV_CODEC_ID_BRENDER_PIX, AV_CODEC_ID_PAF_VIDEO, AV_CODEC_ID_EXR, AV_CODEC_ID_VP7, AV_CODEC_ID_SANM, AV_CODEC_ID_SGIRLE, AV_CODEC_ID_MVC1, AV_CODEC_ID_MVC2, AV_CODEC_ID_HQX, AV_CODEC_ID_TDSC, AV_CODEC_ID_HQ_HQA, AV_CODEC_ID_HAP, AV_CODEC_ID_DDS, AV_CODEC_ID_DXV, AV_CODEC_ID_SCREENPRESSO, AV_CODEC_ID_RSCC, AV_CODEC_ID_AVS2, AV_CODEC_ID_Y41P = 32768, AV_CODEC_ID_AVRP, AV_CODEC_ID_012V, 
	AV_CODEC_ID_AVUI, AV_CODEC_ID_AYUV, AV_CODEC_ID_TARGA_Y216, AV_CODEC_ID_V308, AV_CODEC_ID_V408, AV_CODEC_ID_YUV4, AV_CODEC_ID_AVRN, AV_CODEC_ID_CPIA, AV_CODEC_ID_XFACE, AV_CODEC_ID_SNOW, AV_CODEC_ID_SMVJPEG, AV_CODEC_ID_APNG, AV_CODEC_ID_DAALA, AV_CODEC_ID_CFHD, AV_CODEC_ID_TRUEMOTION2RT, AV_CODEC_ID_M101, AV_CODEC_ID_MAGICYUV, AV_CODEC_ID_SHEERVIDEO, AV_CODEC_ID_YLC, AV_CODEC_ID_PSD, AV_CODEC_ID_PIXLET, AV_CODEC_ID_SPEEDHQ, AV_CODEC_ID_FMVC, AV_CODEC_ID_SCPR, AV_CODEC_ID_CLEARVIDEO, AV_CODEC_ID_XPM, AV_CODEC_ID_AV1, AV_CODEC_ID_BITPACKED, AV_CODEC_ID_MSCC, AV_CODEC_ID_SRGC, AV_CODEC_ID_SVG, AV_CODEC_ID_GDV, AV_CODEC_ID_FITS, AV_CODEC_ID_IMM4, AV_CODEC_ID_PROSUMER, AV_CODEC_ID_MWSC, AV_CODEC_ID_WCMV, AV_CODEC_ID_RASC, AV_CODEC_ID_HYMT, AV_CODEC_ID_ARBC, 
	AV_CODEC_ID_AGM, AV_CODEC_ID_LSCR, AV_CODEC_ID_VP4, AV_CODEC_ID_FIRST_AUDIO = 65536, AV_CODEC_ID_PCM_S16LE = 65536, AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_U16LE, AV_CODEC_ID_PCM_U16BE, AV_CODEC_ID_PCM_S8, AV_CODEC_ID_PCM_U8, AV_CODEC_ID_PCM_MULAW, AV_CODEC_ID_PCM_ALAW, AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE, AV_CODEC_ID_PCM_U32LE, AV_CODEC_ID_PCM_U32BE, AV_CODEC_ID_PCM_S24LE, AV_CODEC_ID_PCM_S24BE, AV_CODEC_ID_PCM_U24LE, AV_CODEC_ID_PCM_U24BE, AV_CODEC_ID_PCM_S24DAUD, AV_CODEC_ID_PCM_ZORK, AV_CODEC_ID_PCM_S16LE_PLANAR, AV_CODEC_ID_PCM_DVD, AV_CODEC_ID_PCM_F32BE, AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F64BE, AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_BLURAY, AV_CODEC_ID_PCM_LXF, AV_CODEC_ID_S302M, AV_CODEC_ID_PCM_S8_PLANAR, AV_CODEC_ID_PCM_S24LE_PLANAR, 
	AV_CODEC_ID_PCM_S32LE_PLANAR, AV_CODEC_ID_PCM_S16BE_PLANAR, AV_CODEC_ID_PCM_S64LE = 67584, AV_CODEC_ID_PCM_S64BE, AV_CODEC_ID_PCM_F16LE, AV_CODEC_ID_PCM_F24LE, AV_CODEC_ID_PCM_VIDC, AV_CODEC_ID_ADPCM_IMA_QT = 69632, AV_CODEC_ID_ADPCM_IMA_WAV, AV_CODEC_ID_ADPCM_IMA_DK3, AV_CODEC_ID_ADPCM_IMA_DK4, AV_CODEC_ID_ADPCM_IMA_WS, AV_CODEC_ID_ADPCM_IMA_SMJPEG, AV_CODEC_ID_ADPCM_MS, AV_CODEC_ID_ADPCM_4XM, AV_CODEC_ID_ADPCM_XA, AV_CODEC_ID_ADPCM_ADX, AV_CODEC_ID_ADPCM_EA, AV_CODEC_ID_ADPCM_G726, AV_CODEC_ID_ADPCM_CT, AV_CODEC_ID_ADPCM_SWF, AV_CODEC_ID_ADPCM_YAMAHA, AV_CODEC_ID_ADPCM_SBPRO_4, AV_CODEC_ID_ADPCM_SBPRO_3, AV_CODEC_ID_ADPCM_SBPRO_2, AV_CODEC_ID_ADPCM_THP, AV_CODEC_ID_ADPCM_IMA_AMV, AV_CODEC_ID_ADPCM_EA_R1, AV_CODEC_ID_ADPCM_EA_R3, AV_CODEC_ID_ADPCM_EA_R2, 
	AV_CODEC_ID_ADPCM_IMA_EA_SEAD, AV_CODEC_ID_ADPCM_IMA_EA_EACS, AV_CODEC_ID_ADPCM_EA_XAS, AV_CODEC_ID_ADPCM_EA_MAXIS_XA, AV_CODEC_ID_ADPCM_IMA_ISS, AV_CODEC_ID_ADPCM_G722, AV_CODEC_ID_ADPCM_IMA_APC, AV_CODEC_ID_ADPCM_VIMA, AV_CODEC_ID_ADPCM_AFC = 71680, AV_CODEC_ID_ADPCM_IMA_OKI, AV_CODEC_ID_ADPCM_DTK, AV_CODEC_ID_ADPCM_IMA_RAD, AV_CODEC_ID_ADPCM_G726LE, AV_CODEC_ID_ADPCM_THP_LE, AV_CODEC_ID_ADPCM_PSX, AV_CODEC_ID_ADPCM_AICA, AV_CODEC_ID_ADPCM_IMA_DAT4, AV_CODEC_ID_ADPCM_MTAF, AV_CODEC_ID_ADPCM_AGM, AV_CODEC_ID_AMR_NB = 73728, AV_CODEC_ID_AMR_WB, AV_CODEC_ID_RA_144 = 77824, AV_CODEC_ID_RA_288, AV_CODEC_ID_ROQ_DPCM = 81920, AV_CODEC_ID_INTERPLAY_DPCM, AV_CODEC_ID_XAN_DPCM, AV_CODEC_ID_SOL_DPCM, AV_CODEC_ID_SDX2_DPCM = 83968, AV_CODEC_ID_GREMLIN_DPCM, 
	AV_CODEC_ID_MP2 = 86016, AV_CODEC_ID_MP3, AV_CODEC_ID_AAC, AV_CODEC_ID_AC3, AV_CODEC_ID_DTS, AV_CODEC_ID_VORBIS, AV_CODEC_ID_DVAUDIO, AV_CODEC_ID_WMAV1, AV_CODEC_ID_WMAV2, AV_CODEC_ID_MACE3, AV_CODEC_ID_MACE6, AV_CODEC_ID_VMDAUDIO, AV_CODEC_ID_FLAC, AV_CODEC_ID_MP3ADU, AV_CODEC_ID_MP3ON4, AV_CODEC_ID_SHORTEN, AV_CODEC_ID_ALAC, AV_CODEC_ID_WESTWOOD_SND1, AV_CODEC_ID_GSM, AV_CODEC_ID_QDM2, AV_CODEC_ID_COOK, AV_CODEC_ID_TRUESPEECH, AV_CODEC_ID_TTA, AV_CODEC_ID_SMACKAUDIO, AV_CODEC_ID_QCELP, AV_CODEC_ID_WAVPACK, AV_CODEC_ID_DSICINAUDIO, AV_CODEC_ID_IMC, AV_CODEC_ID_MUSEPACK7, AV_CODEC_ID_MLP, AV_CODEC_ID_GSM_MS, AV_CODEC_ID_ATRAC3, AV_CODEC_ID_APE, AV_CODEC_ID_NELLYMOSER, AV_CODEC_ID_MUSEPACK8, AV_CODEC_ID_SPEEX, AV_CODEC_ID_WMAVOICE, AV_CODEC_ID_WMAPRO, 
	AV_CODEC_ID_WMALOSSLESS, AV_CODEC_ID_ATRAC3P, AV_CODEC_ID_EAC3, AV_CODEC_ID_SIPR, AV_CODEC_ID_MP1, AV_CODEC_ID_TWINVQ, AV_CODEC_ID_TRUEHD, AV_CODEC_ID_MP4ALS, AV_CODEC_ID_ATRAC1, AV_CODEC_ID_BINKAUDIO_RDFT, AV_CODEC_ID_BINKAUDIO_DCT, AV_CODEC_ID_AAC_LATM, AV_CODEC_ID_QDMC, AV_CODEC_ID_CELT, AV_CODEC_ID_G723_1, AV_CODEC_ID_G729, AV_CODEC_ID_8SVX_EXP, AV_CODEC_ID_8SVX_FIB, AV_CODEC_ID_BMV_AUDIO, AV_CODEC_ID_RALF, AV_CODEC_ID_IAC, AV_CODEC_ID_ILBC, AV_CODEC_ID_OPUS, AV_CODEC_ID_COMFORT_NOISE, AV_CODEC_ID_TAK, AV_CODEC_ID_METASOUND, AV_CODEC_ID_PAF_AUDIO, AV_CODEC_ID_ON2AVC, AV_CODEC_ID_DSS_SP, AV_CODEC_ID_CODEC2, AV_CODEC_ID_FFWAVESYNTH = 88064, AV_CODEC_ID_SONIC, AV_CODEC_ID_SONIC_LS, AV_CODEC_ID_EVRC, AV_CODEC_ID_SMV, AV_CODEC_ID_DSD_LSBF, 
	AV_CODEC_ID_DSD_MSBF, AV_CODEC_ID_DSD_LSBF_PLANAR, AV_CODEC_ID_DSD_MSBF_PLANAR, AV_CODEC_ID_4GV, AV_CODEC_ID_INTERPLAY_ACM, AV_CODEC_ID_XMA1, AV_CODEC_ID_XMA2, AV_CODEC_ID_DST, AV_CODEC_ID_ATRAC3AL, AV_CODEC_ID_ATRAC3PAL, AV_CODEC_ID_DOLBY_E, AV_CODEC_ID_APTX, AV_CODEC_ID_APTX_HD, AV_CODEC_ID_SBC, AV_CODEC_ID_ATRAC9, AV_CODEC_ID_HCOM, AV_CODEC_ID_FIRST_SUBTITLE = 94208, AV_CODEC_ID_DVD_SUBTITLE = 94208, AV_CODEC_ID_DVB_SUBTITLE, AV_CODEC_ID_TEXT, AV_CODEC_ID_XSUB, AV_CODEC_ID_SSA, AV_CODEC_ID_MOV_TEXT, AV_CODEC_ID_HDMV_PGS_SUBTITLE, AV_CODEC_ID_DVB_TELETEXT, AV_CODEC_ID_SRT, AV_CODEC_ID_MICRODVD = 96256, AV_CODEC_ID_EIA_608, AV_CODEC_ID_JACOSUB, AV_CODEC_ID_SAMI, AV_CODEC_ID_REALTEXT, AV_CODEC_ID_STL, AV_CODEC_ID_SUBVIEWER1, AV_CODEC_ID_SUBVIEWER, 
	AV_CODEC_ID_SUBRIP, AV_CODEC_ID_WEBVTT, AV_CODEC_ID_MPL2, AV_CODEC_ID_VPLAYER, AV_CODEC_ID_PJS, AV_CODEC_ID_ASS, AV_CODEC_ID_HDMV_TEXT_SUBTITLE, AV_CODEC_ID_TTML, AV_CODEC_ID_ARIB_CAPTION, AV_CODEC_ID_FIRST_UNKNOWN = 98304, AV_CODEC_ID_TTF = 98304, AV_CODEC_ID_SCTE_35, AV_CODEC_ID_BINTEXT = 100352, AV_CODEC_ID_XBIN, AV_CODEC_ID_IDF, AV_CODEC_ID_OTF, AV_CODEC_ID_SMPTE_KLV, AV_CODEC_ID_DVD_NAV, AV_CODEC_ID_TIMED_ID3, AV_CODEC_ID_BIN_DATA, AV_CODEC_ID_MPEG2TS = 131072, AV_CODEC_ID_MPEG4SYSTEMS, AV_CODEC_ID_FFMETADATA = 135168, AV_CODEC_ID_WRAPPED_AVFRAME };

typedef AVCodecID *pAVCodecID;

struct DECLSPEC_DRECORD AVProfile
{
public:
	int profile;
	char *name;
};


typedef AVProfile *pAVProfile;

typedef AVCodecDescriptor *pAVCodecDescriptor;

struct DECLSPEC_DRECORD AVCodecDescriptor
{
public:
	AVCodecID id;
	Libavutil::AVMediaType _type;
	char *name;
	char *long_name;
	int props;
	char * *mime_types;
	AVProfile *profiles;
};


typedef AVCodecHWConfig *pAVCodecHWConfig;

struct DECLSPEC_DRECORD AVCodecHWConfig
{
public:
	Libavutil::AVPixelFormat pix_fmt;
	int methods;
	Libavutil::AVHWDeviceType device_type;
};


enum DECLSPEC_DENUM AVDiscard: int { AVDISCARD_NONE = -16, AVDISCARD_DEFAULT = 0, AVDISCARD_NONREF = 8, AVDISCARD_BIDIR = 16, AVDISCARD_NONINTRA = 24, AVDISCARD_NONKEY = 32, AVDISCARD_ALL = 48 };

enum DECLSPEC_DENUM AVAudioServiceType : unsigned int { AV_AUDIO_SERVICE_TYPE_MAIN, AV_AUDIO_SERVICE_TYPE_EFFECTS, AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED, AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED, AV_AUDIO_SERVICE_TYPE_DIALOGUE, AV_AUDIO_SERVICE_TYPE_COMMENTARY, AV_AUDIO_SERVICE_TYPE_EMERGENCY, AV_AUDIO_SERVICE_TYPE_VOICE_OVER, AV_AUDIO_SERVICE_TYPE_KARAOKE, AV_AUDIO_SERVICE_TYPE_NB };

struct DECLSPEC_DRECORD RcOverride
{
public:
	int start_frame;
	int end_frame;
	int qscale;
	float quality_factor;
};


typedef RcOverride *pRcOverride;

struct DECLSPEC_DRECORD AVPanScan
{
public:
	int id;
	int width;
	int height;
	System::StaticArray<System::StaticArray<short, 2>, 3> position;
};


typedef AVCPBProperties *pAVCPBProperties;

struct DECLSPEC_DRECORD AVCPBProperties
{
public:
	int max_bitrate;
	int min_bitrate;
	int avg_bitrate;
	int buffer_size;
	unsigned __int64 vbv_delay;
};


enum DECLSPEC_DENUM AVPacketSideDataType : unsigned int { AV_PKT_DATA_PALETTE, AV_PKT_DATA_NEW_EXTRADATA, AV_PKT_DATA_PARAM_CHANGE, AV_PKT_DATA_H263_MB_INFO, AV_PKT_DATA_REPLAYGAIN, AV_PKT_DATA_DISPLAYMATRIX, AV_PKT_DATA_STEREO3D, AV_PKT_DATA_AUDIO_SERVICE_TYPE, AV_PKT_DATA_QUALITY_STATS, AV_PKT_DATA_FALLBACK_TRACK, AV_PKT_DATA_CPB_PROPERTIES, AV_PKT_DATA_SKIP_SAMPLES, AV_PKT_DATA_JP_DUALMONO, AV_PKT_DATA_STRINGS_METADATA, AV_PKT_DATA_SUBTITLE_POSITION, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, AV_PKT_DATA_WEBVTT_IDENTIFIER, AV_PKT_DATA_WEBVTT_SETTINGS, AV_PKT_DATA_METADATA_UPDATE, AV_PKT_DATA_MPEGTS_STREAM_ID, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, AV_PKT_DATA_SPHERICAL, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_PKT_DATA_A53_CC, AV_PKT_DATA_ENCRYPTION_INIT_INFO, 
	AV_PKT_DATA_ENCRYPTION_INFO, AV_PKT_DATA_AFD, AV_PKT_DATA_NB };

struct DECLSPEC_DRECORD AVPacketSideData
{
public:
	System::Byte *data;
	int size;
	AVPacketSideDataType _type;
};


typedef AVPacketSideData *pAVPacketSideData;

typedef AVPacket *pAVPacket;

struct DECLSPEC_DRECORD AVPacket
{
public:
	Libavutil::AVBufferRef *buf;
	__int64 pts;
	__int64 dts;
	System::Byte *data;
	int size;
	int stream_index;
	int flags;
	AVPacketSideData *side_data;
	int side_data_elems;
	__int64 duration;
	__int64 pos;
	__int64 convergence_duration _DEPRECATED_ATTRIBUTE0 ;
};


enum DECLSPEC_DENUM AVSideDataParamChangeFlags : unsigned int { AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x1, AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT, AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x4, AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x8 };

typedef AVCodecInternal *pAVCodecInternal;

enum DECLSPEC_DENUM AVFieldOrder : unsigned int { AV_FIELD_UNKNOWN, AV_FIELD_PROGRESSIVE, AV_FIELD_TT, AV_FIELD_BB, AV_FIELD_TB, AV_FIELD_BT };

typedef avcodec *pAVCodec;

typedef pAVCodec *ppAVCodec;

typedef AVCodecContext *pAVCodecContext;

typedef pAVCodecContext *ppAVCodecContext;

typedef AVCodecDefault *pAVCodecDefault;

typedef AVSubtitle *pAVSubtitle;

struct DECLSPEC_DRECORD avcodec
{
public:
	char *name;
	char *long_name;
	Libavutil::AVMediaType _type;
	AVCodecID id;
	int capabilities;
	Libavutil::AVRational *supported_framerates;
	Libavutil::AVPixelFormat *pix_fmts;
	int *supported_samplerates;
	Libavutil::AVSampleFormat *sample_fmts;
	unsigned __int64 *channel_layouts;
	System::Byte max_lowres;
	Libavutil::avclass *priv_class;
	AVProfile *profiles;
	char *wrapper_name;
	int priv_data_size;
	avcodec *next;
	int __cdecl (*init_thread_copy)(pAVCodecContext ctx);
	int __cdecl (*update_thread_context)(pAVCodecContext dst, const pAVCodecContext src);
	AVCodecDefault *defaults;
	void __cdecl (*init_static_data)(pAVCodec codec);
	int __cdecl (*init)(pAVCodecContext ctx);
	int __cdecl (*encode_sub)(pAVCodecContext ctx, System::PByte buf, int buf_size, const pAVSubtitle sub);
	int __cdecl (*encode2)(pAVCodecContext avctx, pAVPacket avpkt, const Libavutil::pAVFrame frame, Ffmpeg_types::pint got_packet_ptr);
	int __cdecl (*decode)(pAVCodecContext cnt, void * outdata, Ffmpeg_types::pint outdata_size, pAVPacket avpkt);
	int __cdecl (*close)(pAVCodecContext ctx);
	int __cdecl (*send_frame)(pAVCodecContext avctx, const Libavutil::pAVFrame frame);
	int __cdecl (*receive_packet)(pAVCodecContext avctx, pAVPacket avpkt);
	int __cdecl (*receive_frame)(pAVCodecContext avctx, Libavutil::pAVFrame frame);
	void __cdecl (*flush)(pAVCodecContext ctx);
	int caps_internal;
	char *bsfs;
	void *hw_configs;
};


typedef int __cdecl (*TAVCodecContext_execute)(pAVCodecContext c2, void * arg);

typedef int __cdecl (*TAVCodecContext_execute2)(pAVCodecContext c2, void * arg, int jobnr, int threadnr);

struct DECLSPEC_DRECORD AVCodecContext
{
public:
	Libavutil::avclass *av_class;
	int log_level_offset;
	Libavutil::AVMediaType codec_type;
	avcodec *codec;
	AVCodecID codec_id;
	unsigned codec_tag;
	void *priv_data;
	AVCodecInternal *internal;
	void *opaque;
	__int64 bit_rate;
	int bit_rate_tolerance;
	int global_quality;
	int compression_level;
	int flags;
	int flags2;
	System::Byte *extradata;
	int extradata_size;
	Libavutil::AVRational time_base;
	int ticks_per_frame;
	int delay;
	int width;
	int height;
	int coded_width;
	int coded_height;
	int gop_size;
	Libavutil::AVPixelFormat pix_fmt;
	void __cdecl (*draw_horiz_band)(pAVCodecContext s, const Libavutil::pAVFrame src, Libavutil::pAVNDPArray offset, int y, int _type, int height);
	void __cdecl (*get_format)(pAVCodecContext s, const Libavutil::pAVPixelFormat fmt);
	int max_b_frames;
	float b_quant_factor;
	int b_frame_strategy _DEPRECATED_ATTRIBUTE0 ;
	float b_quant_offset;
	int has_b_frames;
	int mpeg_quant _DEPRECATED_ATTRIBUTE0 ;
	float i_quant_factor;
	float i_quant_offset;
	float lumi_masking;
	float temporal_cplx_masking;
	float spatial_cplx_masking;
	float p_masking;
	float dark_masking;
	int slice_count;
	int prediction_method _DEPRECATED_ATTRIBUTE0 ;
	int *slice_offset;
	Libavutil::AVRational sample_aspect_ratio;
	int me_cmp;
	int me_sub_cmp;
	int mb_cmp;
	int ildct_cmp;
	int dia_size;
	int last_predictor_count;
	int pre_me _DEPRECATED_ATTRIBUTE0 ;
	int me_pre_cmp;
	int pre_dia_size;
	int me_subpel_quality;
	int me_range;
	int slice_flags;
	int mb_decision;
	System::Word *intra_matrix;
	System::Word *inter_matrix;
	int scenechange_threshold _DEPRECATED_ATTRIBUTE0 ;
	int noise_reduction _DEPRECATED_ATTRIBUTE0 ;
	int intra_dc_precision;
	int skip_top;
	int skip_bottom;
	int mb_lmin;
	int mb_lmax;
	int me_penalty_compensation _DEPRECATED_ATTRIBUTE0 ;
	int bidir_refine;
	int brd_scale _DEPRECATED_ATTRIBUTE0 ;
	int keyint_min;
	int refs;
	int chromaoffset;
	int mv0_threshold;
	int b_sensitivity _DEPRECATED_ATTRIBUTE0 ;
	Libavutil::AVColorPrimaries color_primaries;
	Libavutil::AVColorTransferCharacteristic color_trc;
	Libavutil::AVColorSpace colorspace;
	Libavutil::AVColorRange color_range;
	Libavutil::AVChromaLocation chroma_sample_location;
	int slices;
	AVFieldOrder field_order;
	int sample_rate;
	int channels;
	Libavutil::AVSampleFormat sample_fmt;
	int frame_size;
	int frame_number;
	int block_align;
	int cutoff;
	unsigned __int64 channel_layout;
	unsigned __int64 request_channel_layout;
	AVAudioServiceType audio_service_type;
	Libavutil::AVSampleFormat request_sample_fmt;
	int __cdecl (*get_buffer2)(pAVCodecContext s, Libavutil::pAVFrame frame, int flags);
	int refcounted_frames _DEPRECATED_ATTRIBUTE0 ;
	float qcompress;
	float qblur;
	int qmin;
	int qmax;
	int max_qdiff;
	int rc_buffer_size;
	int rc_override_count;
	RcOverride *rc_override;
	__int64 rc_max_rate;
	__int64 rc_min_rate;
	float rc_max_available_vbv_use;
	float rc_min_vbv_overflow_use;
	int rc_initial_buffer_occupancy;
	int coder_type _DEPRECATED_ATTRIBUTE0 ;
	int context_model _DEPRECATED_ATTRIBUTE0 ;
	int frame_skip_threshold _DEPRECATED_ATTRIBUTE0 ;
	int frame_skip_factor;
	int frame_skip_exp _DEPRECATED_ATTRIBUTE0 ;
	int frame_skip_cmp _DEPRECATED_ATTRIBUTE0 ;
	int trellis;
	int min_prediction_order _DEPRECATED_ATTRIBUTE0 ;
	int max_prediction_order _DEPRECATED_ATTRIBUTE0 ;
	__int64 timecode_frame_start _DEPRECATED_ATTRIBUTE0 ;
	void __cdecl (*rtp_callback)(pAVCodecContext avctx, void * data, int size, int mb_nb);
	int rtp_payload_size _DEPRECATED_ATTRIBUTE0 ;
	int mv_bits _DEPRECATED_ATTRIBUTE0 ;
	int header_bits _DEPRECATED_ATTRIBUTE0 ;
	int i_tex_bits _DEPRECATED_ATTRIBUTE0 ;
	int p_tex_bits _DEPRECATED_ATTRIBUTE0 ;
	int i_count _DEPRECATED_ATTRIBUTE0 ;
	int p_count _DEPRECATED_ATTRIBUTE0 ;
	int skip_count _DEPRECATED_ATTRIBUTE0 ;
	int misc_bits _DEPRECATED_ATTRIBUTE0 ;
	int frame_bits _DEPRECATED_ATTRIBUTE0 ;
	char *stats_out;
	char *stats_in;
	int workaround_bugs;
	int strict_std_compliance;
	int error_concealment;
	int debug;
	int err_recognition;
	__int64 reordered_opaque;
	void *hwaccel;
	void *hwaccel_context;
	Libavutil::TAVNDPArray_uint64_t error;
	int dct_algo;
	int idct_algo;
	int bits_per_coded_sample;
	int bits_per_raw_sample;
	int lowres;
	Libavutil::AVFrame *coded_frame _DEPRECATED_ATTRIBUTE0 ;
	int thread_count;
	int thread_type;
	int active_thread_type;
	int thread_safe_callbacks;
	int __cdecl (*execute)(pAVCodecContext c, TAVCodecContext_execute func, void * arg2, Ffmpeg_types::pint ret, int count, int size);
	int __cdecl (*execute2)(pAVCodecContext c, TAVCodecContext_execute2 func, void * arg2, Ffmpeg_types::pint ret, int count);
	int nsse_weight;
	int profile;
	int level;
	AVDiscard skip_loop_filter;
	AVDiscard skip_idct;
	AVDiscard skip_frame;
	System::Byte *subtitle_header;
	int subtitle_header_size;
	unsigned __int64 vbv_delay _DEPRECATED_ATTRIBUTE0 ;
	int side_data_only_packets _DEPRECATED_ATTRIBUTE0 ;
	int initial_padding;
	Libavutil::AVRational framerate;
	Libavutil::AVPixelFormat sw_pix_fmt;
	Libavutil::AVRational pkt_timebase;
	AVCodecDescriptor *codec_descriptor;
	__int64 pts_correction_num_faulty_pts;
	__int64 pts_correction_num_faulty_dts;
	__int64 pts_correction_last_pts;
	__int64 pts_correction_last_dts;
	char *sub_charenc;
	int sub_charenc_mode;
	int skip_alpha;
	int seek_preroll;
	int debug_mv;
	System::Word *chroma_intra_matrix;
	System::Byte *dump_separator;
	char *codec_whitelist;
	unsigned properties;
	AVPacketSideData *coded_side_data;
	int nb_coded_side_data;
	Libavutil::AVBufferRef *hw_frames_ctx;
	int sub_text_format;
	int trailing_padding;
	__int64 max_pixels;
	Libavutil::AVBufferRef *hw_device_ctx;
	int hwaccel_flags;
	int apply_cropping;
	int extra_hw_frames;
	int discard_damaged_percentage;
};


typedef MpegEncContext *pMpegEncContext;

struct DECLSPEC_DRECORD AVHWAccel
{
public:
	char *name;
	Libavutil::AVMediaType _type;
	AVCodecID id;
	Libavutil::AVPixelFormat pix_fmt;
	int capabilities;
	int __cdecl (*alloc_frame)(pAVCodecContext avctx, Libavutil::pAVFrame frame);
	int __cdecl (*start_frame)(pAVCodecContext avctx, const System::PByte buf, unsigned buf_size);
	int __cdecl (*decode_params)(pAVCodecContext avctx, int _type, const System::PByte buf, unsigned buf_size);
	int __cdecl (*decode_slice)(pAVCodecContext avctx, const System::PByte buf, unsigned buf_size);
	int __cdecl (*end_frame)(pAVCodecContext avctx);
	int frame_priv_data_size;
	void __cdecl (*decode_mb)(pMpegEncContext s);
	int __cdecl (*init)(pAVCodecContext avctx);
	int __cdecl (*uninit)(pAVCodecContext avctx);
	int priv_data_size;
	int caps_internal;
	int __cdecl (*frame_params)(pAVCodecContext avctx, Libavutil::pAVBufferRef hw_frames_ctx);
};


typedef AVPicture *pAVPicture;

struct DECLSPEC_DRECORD AVPicture _DEPRECATED_ATTRIBUTE1("use AVFrame or imgutils functions instead") 
{
public:
	Libavutil::TAVNDPArray_puint8_t data _DEPRECATED_ATTRIBUTE0 ;
	Libavutil::TAVNDPArray linesize _DEPRECATED_ATTRIBUTE0 ;
};


enum DECLSPEC_DENUM AVSubtitleType : unsigned int { SUBTITLE_NONE, SUBTITLE_BITMAP, SUBTITLE_TEXT, SUBTITLE_ASS };

struct DECLSPEC_DRECORD AVSubtitleRect
{
public:
	int x;
	int y;
	int w;
	int h;
	int nb_colors;
	AVPicture pict _DEPRECATED_ATTRIBUTE0 ;
	Libavutil::Tuint8_t_array_4 *data;
	Libavutil::Tint_array_4 linesize;
	AVSubtitleType _type;
	char *text;
	char *ass;
	int flags;
};


typedef AVSubtitleRect *pAVSubtitleRect;

typedef pAVSubtitleRect *ppAVSubtitleRect;

struct DECLSPEC_DRECORD AVSubtitle
{
public:
	System::Word format;
	unsigned start_display_time;
	unsigned end_display_time;
	unsigned num_rects;
	pAVSubtitleRect *rects;
	__int64 pts;
};


typedef AVCodecParameters *pAVCodecParameters;

struct DECLSPEC_DRECORD AVCodecParameters
{
	
private:
	#pragma pack(push,1)
	struct DECLSPEC_DRECORD _AVCodecParameters__1
	{
		
	public:
		union
		{
			struct 
			{
				System::StaticArray<System::Byte, 4> fourbb;
			};
			struct 
			{
				System::StaticArray<char, 4> fourcc;
			};
			struct 
			{
				unsigned tag;
			};
			
		};
	};
	#pragma pack(pop)
	
	
	
public:
	Libavutil::AVMediaType codec_type;
	AVCodecID codec_id;
	_AVCodecParameters__1 codec_tag;
	System::Byte *extradata;
	int extradata_size;
	int format;
	__int64 bit_rate;
	int bits_per_coded_sample;
	int bits_per_raw_sample;
	int profile;
	int level;
	int width;
	int height;
	Libavutil::AVRational sample_aspect_ratio;
	AVFieldOrder field_order;
	Libavutil::AVColorRange color_range;
	Libavutil::AVColorPrimaries color_primaries;
	Libavutil::AVColorTransferCharacteristic color_trc;
	Libavutil::AVColorSpace color_space;
	Libavutil::AVChromaLocation chroma_location;
	int video_delay;
	unsigned __int64 channel_layout;
	int channels;
	int sample_rate;
	int block_align;
	int frame_size;
	int initial_padding;
	int trailing_padding;
	int seek_preroll;
};


typedef System::StaticArray<__int64, 4> TAPPNArray_int64_t;

enum DECLSPEC_DENUM AVPictureStructure : unsigned int { AV_PICTURE_STRUCTURE_UNKNOWN, AV_PICTURE_STRUCTURE_TOP_FIELD, AV_PICTURE_STRUCTURE_BOTTOM_FIELD, AV_PICTURE_STRUCTURE_FRAME };

typedef AVCodecParserContext *pAVCodecParserContext;

typedef AVCodecParser *pAVCodecParser;

struct DECLSPEC_DRECORD AVCodecParserContext
{
public:
	void *priv_data;
	AVCodecParser *parser;
	__int64 frame_offset;
	__int64 cur_offset;
	__int64 next_frame_offset;
	int pict_type;
	int repeat_pict;
	__int64 pts;
	__int64 dts;
	__int64 last_pts;
	__int64 last_dts;
	int fetch_timestamp;
	int cur_frame_start_index;
	TAPPNArray_int64_t cur_frame_offset;
	TAPPNArray_int64_t cur_frame_pts;
	TAPPNArray_int64_t cur_frame_dts;
	int flags;
	__int64 offset;
	TAPPNArray_int64_t cur_frame_end;
	int key_frame;
	__int64 convergence_duration _DEPRECATED_ATTRIBUTE0 ;
	int dts_sync_point;
	int dts_ref_dts_delta;
	int pts_dts_delta;
	TAPPNArray_int64_t cur_frame_pos;
	__int64 pos;
	__int64 last_pos;
	int duration;
	AVFieldOrder field_order;
	AVPictureStructure picture_structure;
	int output_picture_number;
	int width;
	int height;
	int coded_width;
	int coded_height;
	int format;
};


typedef System::StaticArray<int, 5> Tcodec_ids_array_5_int;

struct DECLSPEC_DRECORD AVCodecParser
{
public:
	Tcodec_ids_array_5_int codec_ids;
	int priv_data_size;
	int __cdecl (*parser_init)(pAVCodecParserContext s);
	int __cdecl (*parser_parse)(pAVCodecParserContext s, pAVCodecContext avctx, const System::PByte poutbuf, Ffmpeg_types::pint poutbuf_size, const System::PByte buf, int buf_size);
	void __cdecl (*parser_close)(pAVCodecParserContext s);
	int __cdecl (*split)(pAVCodecContext avctx, const System::PByte buf, int buf_size);
	AVCodecParser *next;
};


typedef int __cdecl (*Tavcodec_default_execute_func)(pAVCodecContext c2, void * arg2);

typedef int __cdecl (*Tavcodec_default_execute2_func)(pAVCodecContext c2, void * arg2, int p1, int p2);

typedef AVBitStreamFilter *pAVBitStreamFilter;

typedef AVBitStreamFilterContext *pAVBitStreamFilterContext;

struct DECLSPEC_DRECORD AVBitStreamFilterContext
{
public:
	void *priv_data;
	AVBitStreamFilter *filter;
	AVCodecParserContext *parser;
	AVBitStreamFilterContext *next;
	char *args;
};


typedef AVBSFInternal *pAVBSFInternal;

typedef AVBSFContext *pAVBSFContext;

struct DECLSPEC_DRECORD AVBSFContext
{
public:
	Libavutil::avclass *av_class;
	AVBitStreamFilter *filter;
	AVBSFInternal *internal;
	void *priv_data;
	AVCodecParameters *par_in;
	AVCodecParameters *par_out;
	Libavutil::AVRational time_base_in;
	Libavutil::AVRational time_base_out;
};


struct DECLSPEC_DRECORD AVBitStreamFilter
{
public:
	char *name;
	AVCodecID *codec_ids;
	Libavutil::avclass *priv_class;
	int priv_data_size;
	int __cdecl (*init)(pAVBSFContext ctx);
	int __cdecl (*filter)(pAVBSFContext ctx, pAVPacket pkt);
	void __cdecl (*close)(pAVBSFContext ctx);
	void __cdecl (*flush)(pAVBSFContext ctx);
};


typedef AVBSFList *pAVBSFList;

enum DECLSPEC_DENUM AVLockOp _DEPRECATED_ATTRIBUTE1("Deprecated together with av_lockmgr_register()")  : unsigned int { AV_LOCK_CREATE, AV_LOCK_OBTAIN, AV_LOCK_RELEASE, AV_LOCK_DESTROY };

typedef int __cdecl (*Tav_lockmgr_register_cb_func)(void * &mutex, AVLockOp op);

typedef AVVorbisParseContext *pAVVorbisParseContext;

struct DECLSPEC_DRECORD vaapi_context _DEPRECATED_ATTRIBUTE0 
{
public:
	void *display;
	unsigned config_id;
	unsigned context_id;
};


typedef AVDCT *pAVDCT;

struct DECLSPEC_DRECORD AVDCT
{
public:
	Libavutil::avclass *av_class;
	void __cdecl (*idct)(Ffmpeg_types::pint16_t block);
	System::StaticArray<System::Byte, 64> idct_permutation;
	void __cdecl (*fdct)(Ffmpeg_types::pint16_t block);
	int dct_algo;
	int idct_algo;
	void __cdecl (*get_pixels)(short block, const System::PByte pixels, unsigned line_size);
	int bits_per_sample;
};


typedef AVMediaCodecContext *pAVMediaCodecContext;

struct DECLSPEC_DRECORD AVMediaCodecContext
{
public:
	void *surface;
};


typedef AVMediaCodecBuffer *pAVMediaCodecBuffer;

typedef float FFTSample;

typedef float *pFFTSample;

typedef FFTComplex *pFFTComplex;

struct DECLSPEC_DRECORD FFTComplex
{
public:
	float re;
	float im;
};


typedef FFTContext *pFFTContext;

enum DECLSPEC_DENUM RDFTransformType : unsigned int { DFT_R2C, IDFT_C2R, IDFT_R2C, DFT_C2R };

typedef RDFTContext *pRDFTContext;

typedef DCTContext *pDCTContext;

enum DECLSPEC_DENUM DCTTransformType : unsigned int { DCT_II, DCT_III, DCT_I, DST_I };

typedef System::StaticArray<System::Byte, 9> Taudio_shuffle;

typedef Taudio_shuffle *paudio_shuffle;

typedef AVDVProfile *pAVDVProfile;

struct DECLSPEC_DRECORD AVDVProfile
{
public:
	int dsf;
	int video_stype;
	int frame_size;
	int difseg_size;
	int n_difchan;
	Libavutil::AVRational time_base;
	int ltc_divisor;
	int height;
	int width;
	System::StaticArray<Libavutil::AVRational, 2> sar;
	Libavutil::AVPixelFormat pix_fmt;
	int bpm;
	System::Byte *block_sizes;
	int audio_stride;
	System::StaticArray<int, 3> audio_min_samples;
	System::StaticArray<int, 5> audio_samples_dist;
	Taudio_shuffle *audio_shuffle;
};


enum DECLSPEC_DENUM DiracParseCodes : unsigned int { DIRAC_PCODE_SEQ_HEADER, DIRAC_PCODE_END_SEQ = 16, DIRAC_PCODE_AUX = 32, DIRAC_PCODE_PAD = 48, DIRAC_PCODE_PICTURE_CODED = 8, DIRAC_PCODE_PICTURE_RAW = 72, DIRAC_PCODE_PICTURE_LOW_DEL = 200, DIRAC_PCODE_PICTURE_HQ = 232, DIRAC_PCODE_INTER_NOREF_CO1 = 10, DIRAC_PCODE_INTER_NOREF_CO2 = 9, DIRAC_PCODE_INTER_REF_CO1 = 13, DIRAC_PCODE_INTER_REF_CO2, DIRAC_PCODE_INTRA_REF_CO = 12, DIRAC_PCODE_INTRA_REF_RAW = 76, DIRAC_PCODE_INTRA_REF_PICT = 204, DIRAC_PCODE_MAGIC = 1111638852 };

struct DECLSPEC_DRECORD DiracVersionInfo
{
public:
	int major;
	int minor;
};


typedef AVDiracSeqHeader *pAVDiracSeqHeader;

struct DECLSPEC_DRECORD AVDiracSeqHeader
{
public:
	unsigned width;
	unsigned height;
	System::Byte chroma_format;
	System::Byte interlaced;
	System::Byte top_field_first;
	System::Byte frame_rate_index;
	System::Byte aspect_ratio_index;
	System::Word clean_width;
	System::Word clean_height;
	System::Word clean_left_offset;
	System::Word clean_right_offset;
	System::Byte pixel_range_index;
	System::Byte color_spec_index;
	int profile;
	int level;
	Libavutil::AVRational framerate;
	Libavutil::AVRational sample_aspect_ratio;
	Libavutil::AVPixelFormat pix_fmt;
	Libavutil::AVColorRange color_range;
	Libavutil::AVColorPrimaries color_primaries;
	Libavutil::AVColorTransferCharacteristic color_trc;
	Libavutil::AVColorSpace colorspace;
	DiracVersionInfo version;
	int bit_depth;
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 LIBAVUTIL_VERSION_MAJOR = System::Int8(0x38);
#define LIBAVUTIL_VERSION_MAJOR_STR L"56"
static const System::Int8 LIBAVUTIL_VERSION_MINOR = System::Int8(0x1f);
static const System::Int8 LIBAVUTIL_VERSION_MICRO = System::Int8(0x64);
#define FFMPEG_VERSION L"4.2.2"
static const int LIBAVUTIL_VERSION_INT = int(0x381f64);
static const System::Int8 LIBSWSCALE_VERSION_MAJOR = System::Int8(0x5);
static const System::WideChar LIBSWSCALE_VERSION_MAJOR_STR = (System::WideChar)(0x35);
static const System::Int8 LIBSWSCALE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWSCALE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVCODEC_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVCODEC_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVCODEC_VERSION_MINOR = System::Int8(0x36);
static const System::Int8 LIBAVCODEC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVDEVICE_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVDEVICE_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVDEVICE_VERSION_MINOR = System::Int8(0x8);
static const System::Int8 LIBAVDEVICE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFORMAT_VERSION_MAJOR = System::Int8(0x3a);
#define LIBAVFORMAT_VERSION_MAJOR_STR L"58"
static const System::Int8 LIBAVFORMAT_VERSION_MINOR = System::Int8(0x1d);
static const System::Int8 LIBAVFORMAT_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 FF_API_R_FRAME_RATE = System::Int8(0x1);
static const System::Int8 LIBPOSTPROC_VERSION_MAJOR = System::Int8(0x37);
#define LIBPOSTPROC_VERSION_MAJOR_STR L"55"
static const System::Int8 LIBPOSTPROC_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBPOSTPROC_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBSWRESAMPLE_VERSION_MAJOR = System::Int8(0x3);
static const System::WideChar LIBSWRESAMPLE_VERSION_MAJOR_STR = (System::WideChar)(0x33);
static const System::Int8 LIBSWRESAMPLE_VERSION_MINOR = System::Int8(0x5);
static const System::Int8 LIBSWRESAMPLE_VERSION_MICRO = System::Int8(0x64);
static const System::Int8 LIBAVFILTER_VERSION_MAJOR = System::Int8(0x7);
static const System::WideChar LIBAVFILTER_VERSION_MAJOR_STR = (System::WideChar)(0x37);
static const System::Int8 LIBAVFILTER_VERSION_MINOR = System::Int8(0x39);
static const System::Int8 LIBAVFILTER_VERSION_MICRO = System::Int8(0x64);
#define swscale_dll L"swscale-5.dll"
#define avutil_dll L"avutil-56.dll"
#define avcodec_dll L"avcodec-58.dll"
#define avdevice_dll L"avdevice-58.dll"
#define avformat_dll L"avformat-58.dll"
#define postproc_dll L"postproc-55.dll"
#define swresample_dll L"swresample-3.dll"
#define avfilter_dll L"avfilter-7.dll"
extern DELPHI_PACKAGE AVCodecID AV_CODEC_ID_IFF_BYTERUN1;
extern DELPHI_PACKAGE AVCodecID AV_CODEC_ID_H265;
static const System::Int8 AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = System::Int8(0x1);
static const System::Int8 AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = System::Int8(0x2);
static const System::Int8 AV_CODEC_HW_CONFIG_METHOD_INTERNAL = System::Int8(0x4);
static const System::Int8 AV_CODEC_HW_CONFIG_METHOD_AD_HOC = System::Int8(0x8);
static const System::Int8 AV_CODEC_PROP_INTRA_ONLY = System::Int8(0x1);
static const System::Int8 AV_CODEC_PROP_LOSSY = System::Int8(0x2);
static const System::Int8 AV_CODEC_PROP_LOSSLESS = System::Int8(0x4);
static const System::Int8 AV_CODEC_PROP_REORDER = System::Int8(0x8);
static const int AV_CODEC_PROP_BITMAP_SUB = int(0x10000);
static const int AV_CODEC_PROP_TEXT_SUB = int(0x20000);
static const System::Int8 AV_INPUT_BUFFER_PADDING_SIZE = System::Int8(0x40);
static const System::Word AV_INPUT_BUFFER_MIN_SIZE = System::Word(0x4000);
static const System::Int8 AV_CODEC_FLAG_UNALIGNED = System::Int8(0x1);
static const System::Int8 AV_CODEC_FLAG_QSCALE = System::Int8(0x2);
static const System::Int8 AV_CODEC_FLAG_4MV = System::Int8(0x4);
static const System::Int8 AV_CODEC_FLAG_OUTPUT_CORRUPT = System::Int8(0x8);
static const System::Int8 AV_CODEC_FLAG_QPEL = System::Int8(0x10);
static const System::Int8 AV_CODEC_FLAG_DROPCHANGED = System::Int8(0x20);
static const System::Word AV_CODEC_FLAG_PASS1 = System::Word(0x200);
static const System::Word AV_CODEC_FLAG_PASS2 = System::Word(0x400);
static const System::Word AV_CODEC_FLAG_LOOP_FILTER = System::Word(0x800);
static const System::Word AV_CODEC_FLAG_GRAY = System::Word(0x2000);
static const System::Word AV_CODEC_FLAG_PSNR = System::Word(0x8000);
static const int AV_CODEC_FLAG_TRUNCATED = int(0x10000);
static const int AV_CODEC_FLAG_INTERLACED_DCT = int(0x40000);
static const int AV_CODEC_FLAG_LOW_DELAY = int(0x80000);
static const int AV_CODEC_FLAG_GLOBAL_HEADER = int(0x400000);
static const int AV_CODEC_FLAG_BITEXACT = int(0x800000);
static const int AV_CODEC_FLAG_AC_PRED = int(0x1000000);
static const int AV_CODEC_FLAG_INTERLACED_ME = int(0x20000000);
static const int AV_CODEC_FLAG_CLOSED_GOP = int(-2147483648);
static const System::Int8 AV_CODEC_FLAG2_FAST = System::Int8(0x1);
static const System::Int8 AV_CODEC_FLAG2_NO_OUTPUT = System::Int8(0x4);
static const System::Int8 AV_CODEC_FLAG2_LOCAL_HEADER = System::Int8(0x8);
static const System::Word AV_CODEC_FLAG2_DROP_FRAME_TIMECODE _DEPRECATED_ATTRIBUTE0  = System::Word(0x2000);
static const System::Word AV_CODEC_FLAG2_CHUNKS = System::Word(0x8000);
static const int AV_CODEC_FLAG2_IGNORE_CROP = int(0x10000);
static const int AV_CODEC_FLAG2_SHOW_ALL = int(0x400000);
static const int AV_CODEC_FLAG2_EXPORT_MVS = int(0x10000000);
static const int AV_CODEC_FLAG2_SKIP_MANUAL = int(0x20000000);
static const int AV_CODEC_FLAG2_RO_FLUSH_NOOP = int(0x40000000);
static const System::Int8 AV_CODEC_CAP_DRAW_HORIZ_BAND = System::Int8(0x1);
static const System::Int8 AV_CODEC_CAP_DR1 = System::Int8(0x2);
static const System::Int8 AV_CODEC_CAP_TRUNCATED = System::Int8(0x8);
static const System::Int8 AV_CODEC_CAP_DELAY = System::Int8(0x20);
static const System::Int8 AV_CODEC_CAP_SMALL_LAST_FRAME = System::Int8(0x40);
static const System::Word AV_CODEC_CAP_SUBFRAMES = System::Word(0x100);
static const System::Word AV_CODEC_CAP_EXPERIMENTAL = System::Word(0x200);
static const System::Word AV_CODEC_CAP_CHANNEL_CONF = System::Word(0x400);
static const System::Word AV_CODEC_CAP_FRAME_THREADS = System::Word(0x1000);
static const System::Word AV_CODEC_CAP_SLICE_THREADS = System::Word(0x2000);
static const System::Word AV_CODEC_CAP_PARAM_CHANGE = System::Word(0x4000);
static const System::Word AV_CODEC_CAP_AUTO_THREADS = System::Word(0x8000);
static const int AV_CODEC_CAP_VARIABLE_FRAME_SIZE = int(0x10000);
static const int AV_CODEC_CAP_AVOID_PROBING = int(0x20000);
static const int AV_CODEC_CAP_INTRA_ONLY = int(0x40000000);
static const unsigned AV_CODEC_CAP_LOSSLESS = unsigned(0x80000000);
static const int AV_CODEC_CAP_HARDWARE = int(0x40000);
static const int AV_CODEC_CAP_HYBRID = int(0x80000);
static const int AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE = int(0x100000);
static const System::Word AV_HWACCEL_CODEC_CAP_EXPERIMENTAL = System::Word(0x200);
static const System::Int8 AV_HWACCEL_FLAG_IGNORE_LEVEL = System::Int8(0x1);
static const System::Int8 AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH = System::Int8(0x2);
static const System::Int8 AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH = System::Int8(0x4);
static const System::Int8 AV_GET_BUFFER_FLAG_REF = System::Int8(0x1);
static const System::Int8 AV_PKT_FLAG_KEY = System::Int8(0x1);
static const System::Int8 AV_PKT_FLAG_CORRUPT = System::Int8(0x2);
static const System::Int8 AV_PKT_FLAG_DISCARD = System::Int8(0x4);
static const System::Int8 AV_PKT_FLAG_TRUSTED = System::Int8(0x8);
static const System::Int8 AV_PKT_FLAG_DISPOSABLE = System::Int8(0x10);
static const System::Int8 FF_COMPRESSION_DEFAULT = System::Int8(-1);
static const System::Int8 FF_PRED_LEFT = System::Int8(0x0);
static const System::Int8 FF_PRED_PLANE = System::Int8(0x1);
static const System::Int8 FF_PRED_MEDIAN = System::Int8(0x2);
static const System::Int8 FF_CMP_SAD = System::Int8(0x0);
static const System::Int8 FF_CMP_SSE = System::Int8(0x1);
static const System::Int8 FF_CMP_SATD = System::Int8(0x2);
static const System::Int8 FF_CMP_DCT = System::Int8(0x3);
static const System::Int8 FF_CMP_PSNR = System::Int8(0x4);
static const System::Int8 FF_CMP_BIT = System::Int8(0x5);
static const System::Int8 FF_CMP_RD = System::Int8(0x6);
static const System::Int8 FF_CMP_ZERO = System::Int8(0x7);
static const System::Int8 FF_CMP_VSAD = System::Int8(0x8);
static const System::Int8 FF_CMP_VSSE = System::Int8(0x9);
static const System::Int8 FF_CMP_NSSE = System::Int8(0xa);
static const System::Int8 FF_CMP_W53 = System::Int8(0xb);
static const System::Int8 FF_CMP_W97 = System::Int8(0xc);
static const System::Int8 FF_CMP_DCTMAX = System::Int8(0xd);
static const System::Int8 FF_CMP_DCT264 = System::Int8(0xe);
static const System::Int8 FF_CMP_MEDIAN_SAD = System::Int8(0xf);
static const System::Word FF_CMP_CHROMA = System::Word(0x100);
static const System::Int8 SLICE_FLAG_CODED_ORDER = System::Int8(0x1);
static const System::Int8 SLICE_FLAG_ALLOW_FIELD = System::Int8(0x2);
static const System::Int8 SLICE_FLAG_ALLOW_PLANE = System::Int8(0x4);
static const System::Int8 FF_MB_DECISION_SIMPLE = System::Int8(0x0);
static const System::Int8 FF_MB_DECISION_BITS = System::Int8(0x1);
static const System::Int8 FF_MB_DECISION_RD = System::Int8(0x2);
static const System::Int8 FF_CODER_TYPE_VLC = System::Int8(0x0);
static const System::Int8 FF_CODER_TYPE_AC = System::Int8(0x1);
static const System::Int8 FF_CODER_TYPE_RAW = System::Int8(0x2);
static const System::Int8 FF_CODER_TYPE_RLE = System::Int8(0x3);
static const System::Int8 FF_BUG_AUTODETECT = System::Int8(0x1);
static const System::Int8 FF_BUG_XVID_ILACE = System::Int8(0x4);
static const System::Int8 FF_BUG_UMP4 = System::Int8(0x8);
static const System::Int8 FF_BUG_NO_PADDING = System::Int8(0x10);
static const System::Int8 FF_BUG_AMV = System::Int8(0x20);
static const System::Int8 FF_BUG_QPEL_CHROMA = System::Int8(0x40);
static const System::Byte FF_BUG_STD_QPEL = System::Byte(0x80);
static const System::Word FF_BUG_QPEL_CHROMA2 = System::Word(0x100);
static const System::Word FF_BUG_DIRECT_BLOCKSIZE = System::Word(0x200);
static const System::Word FF_BUG_EDGE = System::Word(0x400);
static const System::Word FF_BUG_HPEL_CHROMA = System::Word(0x800);
static const System::Word FF_BUG_DC_CLIP = System::Word(0x1000);
static const System::Word FF_BUG_MS = System::Word(0x2000);
static const System::Word FF_BUG_TRUNCATED = System::Word(0x4000);
static const System::Word FF_BUG_IEDGE = System::Word(0x8000);
static const System::Int8 FF_COMPLIANCE_VERY_STRICT = System::Int8(0x2);
static const System::Int8 FF_COMPLIANCE_STRICT = System::Int8(0x1);
static const System::Int8 FF_COMPLIANCE_NORMAL = System::Int8(0x0);
static const System::Int8 FF_COMPLIANCE_UNOFFICIAL = System::Int8(-1);
static const System::Int8 FF_COMPLIANCE_EXPERIMENTAL = System::Int8(-2);
static const System::Int8 FF_EC_GUESS_MVS = System::Int8(0x1);
static const System::Int8 FF_EC_DEBLOCK = System::Int8(0x2);
static const System::Word FF_EC_FAVOR_INTER = System::Word(0x100);
static const System::Int8 FF_DEBUG_PICT_INFO = System::Int8(0x1);
static const System::Int8 FF_DEBUG_RC = System::Int8(0x2);
static const System::Int8 FF_DEBUG_BITSTREAM = System::Int8(0x4);
static const System::Int8 FF_DEBUG_MB_TYPE = System::Int8(0x8);
static const System::Int8 FF_DEBUG_QP = System::Int8(0x10);
static const System::Int8 FF_DEBUG_DCT_COEFF = System::Int8(0x40);
static const System::Byte FF_DEBUG_SKIP = System::Byte(0x80);
static const System::Word FF_DEBUG_STARTCODE = System::Word(0x100);
static const System::Word FF_DEBUG_ER = System::Word(0x400);
static const System::Word FF_DEBUG_MMCO = System::Word(0x800);
static const System::Word FF_DEBUG_BUGS = System::Word(0x1000);
static const System::Word FF_DEBUG_BUFFERS = System::Word(0x8000);
static const int FF_DEBUG_THREADS = int(0x10000);
static const int FF_DEBUG_GREEN_MD = int(0x800000);
static const int FF_DEBUG_NOMC = int(0x1000000);
static const System::Int8 AV_EF_CRCCHECK = System::Int8(0x1);
static const System::Int8 AV_EF_BITSTREAM = System::Int8(0x2);
static const System::Int8 AV_EF_BUFFER = System::Int8(0x4);
static const System::Int8 AV_EF_EXPLODE = System::Int8(0x8);
static const System::Word AV_EF_IGNORE_ERR = System::Word(0x8000);
static const int AV_EF_CAREFUL = int(0x10000);
static const int AV_EF_COMPLIANT = int(0x20000);
static const int AV_EF_AGGRESSIVE = int(0x40000);
static const System::Int8 FF_DCT_AUTO = System::Int8(0x0);
static const System::Int8 FF_DCT_FASTINT = System::Int8(0x1);
static const System::Int8 FF_DCT_INT = System::Int8(0x2);
static const System::Int8 FF_DCT_MMX = System::Int8(0x3);
static const System::Int8 FF_DCT_ALTIVEC = System::Int8(0x5);
static const System::Int8 FF_DCT_FAAN = System::Int8(0x6);
static const System::Int8 FF_IDCT_AUTO = System::Int8(0x0);
static const System::Int8 FF_IDCT_INT = System::Int8(0x1);
static const System::Int8 FF_IDCT_SIMPLE = System::Int8(0x2);
static const System::Int8 FF_IDCT_SIMPLEMMX = System::Int8(0x3);
static const System::Int8 FF_IDCT_ARM = System::Int8(0x7);
static const System::Int8 FF_IDCT_ALTIVEC = System::Int8(0x8);
static const System::Int8 FF_IDCT_SIMPLEARM = System::Int8(0xa);
static const System::Int8 FF_IDCT_XVID = System::Int8(0xe);
static const System::Int8 FF_IDCT_SIMPLEARMV5TE = System::Int8(0x10);
static const System::Int8 FF_IDCT_SIMPLEARMV6 = System::Int8(0x11);
static const System::Int8 FF_IDCT_FAAN = System::Int8(0x14);
static const System::Int8 FF_IDCT_SIMPLENEON = System::Int8(0x16);
static const System::Int8 FF_IDCT_NONE = System::Int8(0x18);
static const System::Byte FF_IDCT_SIMPLEAUTO = System::Byte(0x80);
static const System::Int8 FF_THREAD_FRAME = System::Int8(0x1);
static const System::Int8 FF_THREAD_SLICE = System::Int8(0x2);
static const System::Int8 FF_PROFILE_UNKNOWN = System::Int8(-99);
static const System::Int8 FF_PROFILE_RESERVED = System::Int8(-100);
static const System::Int8 FF_PROFILE_AAC_MAIN = System::Int8(0x0);
static const System::Int8 FF_PROFILE_AAC_LOW = System::Int8(0x1);
static const System::Int8 FF_PROFILE_AAC_SSR = System::Int8(0x2);
static const System::Int8 FF_PROFILE_AAC_LTP = System::Int8(0x3);
static const System::Int8 FF_PROFILE_AAC_HE = System::Int8(0x4);
static const System::Int8 FF_PROFILE_AAC_HE_V2 = System::Int8(0x1c);
static const System::Int8 FF_PROFILE_AAC_LD = System::Int8(0x16);
static const System::Int8 FF_PROFILE_AAC_ELD = System::Int8(0x26);
static const System::Byte FF_PROFILE_MPEG2_AAC_LOW = System::Byte(0x80);
static const System::Byte FF_PROFILE_MPEG2_AAC_HE = System::Byte(0x83);
static const System::Int8 FF_PROFILE_DNXHD = System::Int8(0x0);
static const System::Int8 FF_PROFILE_DNXHR_LB = System::Int8(0x1);
static const System::Int8 FF_PROFILE_DNXHR_SQ = System::Int8(0x2);
static const System::Int8 FF_PROFILE_DNXHR_HQ = System::Int8(0x3);
static const System::Int8 FF_PROFILE_DNXHR_HQX = System::Int8(0x4);
static const System::Int8 FF_PROFILE_DNXHR_444 = System::Int8(0x5);
static const System::Int8 FF_PROFILE_DTS = System::Int8(0x14);
static const System::Int8 FF_PROFILE_DTS_ES = System::Int8(0x1e);
static const System::Int8 FF_PROFILE_DTS_96_24 = System::Int8(0x28);
static const System::Int8 FF_PROFILE_DTS_HD_HRA = System::Int8(0x32);
static const System::Int8 FF_PROFILE_DTS_HD_MA = System::Int8(0x3c);
static const System::Int8 FF_PROFILE_DTS_EXPRESS = System::Int8(0x46);
static const System::Int8 FF_PROFILE_MPEG2_422 = System::Int8(0x0);
static const System::Int8 FF_PROFILE_MPEG2_HIGH = System::Int8(0x1);
static const System::Int8 FF_PROFILE_MPEG2_SS = System::Int8(0x2);
static const System::Int8 FF_PROFILE_MPEG2_SNR_SCALABLE = System::Int8(0x3);
static const System::Int8 FF_PROFILE_MPEG2_MAIN = System::Int8(0x4);
static const System::Int8 FF_PROFILE_MPEG2_SIMPLE = System::Int8(0x5);
static const System::Word FF_PROFILE_H264_CONSTRAINED = System::Word(0x200);
static const System::Word FF_PROFILE_H264_INTRA = System::Word(0x800);
static const System::Int8 FF_PROFILE_H264_BASELINE = System::Int8(0x42);
static const System::Word FF_PROFILE_H264_CONSTRAINED_BASELINE = System::Word(0x242);
static const System::Int8 FF_PROFILE_H264_MAIN = System::Int8(0x4d);
static const System::Int8 FF_PROFILE_H264_EXTENDED = System::Int8(0x58);
static const System::Int8 FF_PROFILE_H264_HIGH = System::Int8(0x64);
static const System::Int8 FF_PROFILE_H264_HIGH_10 = System::Int8(0x6e);
static const System::Word FF_PROFILE_H264_HIGH_10_INTRA = System::Word(0x86e);
static const System::Int8 FF_PROFILE_H264_MULTIVIEW_HIGH = System::Int8(0x76);
static const System::Int8 FF_PROFILE_H264_HIGH_422 = System::Int8(0x7a);
static const System::Word FF_PROFILE_H264_HIGH_422_INTRA = System::Word(0x87a);
static const System::Byte FF_PROFILE_H264_STEREO_HIGH = System::Byte(0x80);
static const System::Byte FF_PROFILE_H264_HIGH_444 = System::Byte(0x90);
static const System::Byte FF_PROFILE_H264_HIGH_444_PREDICTIVE = System::Byte(0xf4);
static const System::Word FF_PROFILE_H264_HIGH_444_INTRA = System::Word(0x8f4);
static const System::Int8 FF_PROFILE_H264_CAVLC_444 = System::Int8(0x2c);
static const System::Int8 FF_PROFILE_VC1_SIMPLE = System::Int8(0x0);
static const System::Int8 FF_PROFILE_VC1_MAIN = System::Int8(0x1);
static const System::Int8 FF_PROFILE_VC1_COMPLEX = System::Int8(0x2);
static const System::Int8 FF_PROFILE_VC1_ADVANCED = System::Int8(0x3);
static const System::Int8 FF_PROFILE_MPEG4_SIMPLE = System::Int8(0x0);
static const System::Int8 FF_PROFILE_MPEG4_SIMPLE_SCALABLE = System::Int8(0x1);
static const System::Int8 FF_PROFILE_MPEG4_CORE = System::Int8(0x2);
static const System::Int8 FF_PROFILE_MPEG4_MAIN = System::Int8(0x3);
static const System::Int8 FF_PROFILE_MPEG4_N_BIT = System::Int8(0x4);
static const System::Int8 FF_PROFILE_MPEG4_SCALABLE_TEXTURE = System::Int8(0x5);
static const System::Int8 FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION = System::Int8(0x6);
static const System::Int8 FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE = System::Int8(0x7);
static const System::Int8 FF_PROFILE_MPEG4_HYBRID = System::Int8(0x8);
static const System::Int8 FF_PROFILE_MPEG4_ADVANCED_REAL_TIME = System::Int8(0x9);
static const System::Int8 FF_PROFILE_MPEG4_CORE_SCALABLE = System::Int8(0xa);
static const System::Int8 FF_PROFILE_MPEG4_ADVANCED_CODING = System::Int8(0xb);
static const System::Int8 FF_PROFILE_MPEG4_ADVANCED_CORE = System::Int8(0xc);
static const System::Int8 FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE = System::Int8(0xd);
static const System::Int8 FF_PROFILE_MPEG4_SIMPLE_STUDIO = System::Int8(0xe);
static const System::Int8 FF_PROFILE_MPEG4_ADVANCED_SIMPLE = System::Int8(0xf);
static const System::Int8 FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 = System::Int8(0x1);
static const System::Int8 FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 = System::Int8(0x2);
static const System::Word FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION = System::Word(0x8000);
static const System::Int8 FF_PROFILE_JPEG2000_DCINEMA_2K = System::Int8(0x3);
static const System::Int8 FF_PROFILE_JPEG2000_DCINEMA_4K = System::Int8(0x4);
static const System::Int8 FF_PROFILE_VP9_0 = System::Int8(0x0);
static const System::Int8 FF_PROFILE_VP9_1 = System::Int8(0x1);
static const System::Int8 FF_PROFILE_VP9_2 = System::Int8(0x2);
static const System::Int8 FF_PROFILE_VP9_3 = System::Int8(0x3);
static const System::Int8 FF_PROFILE_HEVC_MAIN = System::Int8(0x1);
static const System::Int8 FF_PROFILE_HEVC_MAIN_10 = System::Int8(0x2);
static const System::Int8 FF_PROFILE_HEVC_MAIN_STILL_PICTURE = System::Int8(0x3);
static const System::Int8 FF_PROFILE_HEVC_REXT = System::Int8(0x4);
static const System::Int8 FF_PROFILE_AV1_MAIN = System::Int8(0x0);
static const System::Int8 FF_PROFILE_AV1_HIGH = System::Int8(0x1);
static const System::Int8 FF_PROFILE_AV1_PROFESSIONAL = System::Int8(0x2);
static const System::Byte FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT = System::Byte(0xc0);
static const System::Byte FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT = System::Byte(0xc1);
static const System::Byte FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT = System::Byte(0xc2);
static const System::Byte FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS = System::Byte(0xc3);
static const System::Byte FF_PROFILE_MJPEG_JPEG_LS = System::Byte(0xf7);
static const System::Int8 FF_PROFILE_SBC_MSBC = System::Int8(0x1);
static const System::Int8 FF_PROFILE_PRORES_PROXY = System::Int8(0x0);
static const System::Int8 FF_PROFILE_PRORES_LT = System::Int8(0x1);
static const System::Int8 FF_PROFILE_PRORES_STANDARD = System::Int8(0x2);
static const System::Int8 FF_PROFILE_PRORES_HQ = System::Int8(0x3);
static const System::Int8 FF_PROFILE_PRORES_4444 = System::Int8(0x4);
static const System::Int8 FF_PROFILE_PRORES_XQ = System::Int8(0x5);
static const System::Int8 FF_PROFILE_ARIB_PROFILE_A = System::Int8(0x0);
static const System::Int8 FF_PROFILE_ARIB_PROFILE_C = System::Int8(0x1);
static const System::Int8 FF_LEVEL_UNKNOWN = System::Int8(-99);
static const System::Int8 FF_SUB_CHARENC_MODE_DO_NOTHING = System::Int8(-1);
static const System::Int8 FF_SUB_CHARENC_MODE_AUTOMATIC = System::Int8(0x0);
static const System::Int8 FF_SUB_CHARENC_MODE_PRE_DECODER = System::Int8(0x1);
static const System::Int8 FF_SUB_CHARENC_MODE_IGNORE = System::Int8(0x2);
static const System::Int8 FF_CODEC_PROPERTY_LOSSLESS = System::Int8(0x1);
static const System::Int8 FF_CODEC_PROPERTY_CLOSED_CAPTIONS = System::Int8(0x2);
static const System::Int8 FF_SUB_TEXT_FMT_ASS = System::Int8(0x0);
static const System::Int8 FF_SUB_TEXT_FMT_ASS_WITH_TIMINGS = System::Int8(0x1);
static const System::Int8 AV_SUBTITLE_FLAG_FORCED = System::Int8(0x1);
extern "C" Libavutil::AVRational __cdecl av_codec_get_pkt_timebase _DEPRECATED_ATTRIBUTE0 (const pAVCodecContext avctx);
extern "C" void __cdecl av_codec_set_pkt_timebase _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, const Libavutil::AVRational val);
extern "C" pAVCodecDescriptor __cdecl av_codec_get_codec_descriptor(const pAVCodecContext avctx);
extern "C" void __cdecl av_codec_set_codec_descriptor(pAVCodecContext avctx, const pAVCodecDescriptor desc);
extern "C" unsigned __cdecl av_codec_get_codec_properties _DEPRECATED_ATTRIBUTE0 (const pAVCodecContext avctx);
extern "C" int __cdecl av_codec_get_lowres _DEPRECATED_ATTRIBUTE0 (const pAVCodecContext avctx);
extern "C" void __cdecl av_codec_set_lowres _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, int val);
extern "C" int __cdecl av_codec_get_seek_preroll _DEPRECATED_ATTRIBUTE0 (const pAVCodecContext avctx);
extern "C" void __cdecl av_codec_set_seek_preroll _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, int val);
extern "C" Ffmpeg_types::puint16_t __cdecl av_codec_get_chroma_intra_matrix _DEPRECATED_ATTRIBUTE0 (const pAVCodecContext avctx);
extern "C" void __cdecl av_codec_set_chroma_intra_matrix _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, Ffmpeg_types::puint16_t val);
extern "C" int __cdecl av_codec_get_max_lowres _DEPRECATED_ATTRIBUTE0 (const pAVCodec codec);
extern "C" pAVCodecHWConfig __cdecl avcodec_get_hw_config(const pAVCodec codec, int index);
extern DELPHI_PACKAGE AVPacketSideDataType AV_PKT_DATA_QUALITY_FACTOR;
extern "C" pAVCodec __cdecl av_codec_iterate(void * &opaque);
extern "C" pAVCodec __cdecl av_codec_next(const pAVCodec c);
extern "C" unsigned __cdecl avcodec_version(void);
extern "C" char * __cdecl avcodec_configuration(void);
extern "C" char * __cdecl avcodec_license(void);
extern "C" void __cdecl avcodec_register _DEPRECATED_ATTRIBUTE0 (pAVCodec codec);
extern "C" void __cdecl avcodec_register_all _DEPRECATED_ATTRIBUTE0 (void);
extern "C" pAVCodecContext __cdecl avcodec_alloc_context3(const pAVCodec codec);
extern "C" void __cdecl avcodec_free_context(pAVCodecContext &avctx);
extern "C" int __cdecl avcodec_get_context_defaults3(pAVCodecContext s, const pAVCodec codec);
extern "C" Libavutil::pAVClass __cdecl avcodec_get_class(void);
extern "C" Libavutil::pAVClass __cdecl avcodec_get_frame_class(void);
extern "C" Libavutil::pAVClass __cdecl avcodec_get_subtitle_rect_class(void);
extern "C" int __cdecl avcodec_copy_context _DEPRECATED_ATTRIBUTE0 (pAVCodecContext dest, const pAVCodecContext src);
extern "C" pAVCodecParameters __cdecl avcodec_parameters_alloc(void);
extern "C" void __cdecl avcodec_parameters_free(pAVCodecParameters &par);
extern "C" int __cdecl avcodec_parameters_copy(pAVCodecParameters dst, const pAVCodecParameters src);
extern "C" int __cdecl avcodec_parameters_from_context(pAVCodecParameters par, const pAVCodecContext codec);
extern "C" int __cdecl avcodec_parameters_to_context(pAVCodecContext codec, const pAVCodecParameters par);
extern "C" int __cdecl avcodec_open2(pAVCodecContext avctx, const pAVCodec codec, Libavutil::ppAVDictionary options);
extern "C" int __cdecl avcodec_close(pAVCodecContext avctx);
extern "C" void __cdecl avsubtitle_free(pAVSubtitle sub);
extern "C" pAVPacket __cdecl av_packet_alloc(void);
extern "C" pAVPacket __cdecl av_packet_clone(const pAVPacket src);
extern "C" void __cdecl av_packet_free(pAVPacket &pkt);
extern "C" void __cdecl av_init_packet(pAVPacket pkt)/* overload */;
extern "C" void __cdecl av_init_packet(AVPacket &pkt)/* overload */;
extern "C" int __cdecl av_new_packet(pAVPacket pkt, int size);
extern "C" void __cdecl av_shrink_packet(pAVPacket pkt, int size);
extern "C" int __cdecl av_grow_packet(pAVPacket pkt, int grow_by);
extern "C" int __cdecl av_packet_from_data(pAVPacket pkt, System::PByte data, int size);
extern "C" int __cdecl av_dup_packet _DEPRECATED_ATTRIBUTE0 (pAVPacket pkt);
extern "C" int __cdecl av_copy_packet _DEPRECATED_ATTRIBUTE0 (pAVPacket dst, const pAVPacket src);
extern "C" int __cdecl av_copy_packet_side_data _DEPRECATED_ATTRIBUTE0 (pAVPacket dst, const pAVPacket src);
extern "C" void __cdecl av_free_packet _DEPRECATED_ATTRIBUTE0 (pAVPacket pkt)/* overload */;
extern "C" void __cdecl av_free_packet _DEPRECATED_ATTRIBUTE0 (AVPacket &pkt)/* overload */;
extern "C" System::PByte __cdecl av_packet_new_side_data(pAVPacket pkt, AVPacketSideDataType _type, int size);
extern "C" int __cdecl av_packet_add_side_data(pAVPacket pkt, AVPacketSideDataType _type, System::PByte data, NativeUInt size);
extern "C" int __cdecl av_packet_shrink_side_data(pAVPacket pkt, AVPacketSideDataType _type, int size);
extern "C" System::PByte __cdecl av_packet_get_side_data(const pAVPacket pkt, AVPacketSideDataType _type, Ffmpeg_types::pint size);
extern "C" int __cdecl av_packet_merge_side_data _DEPRECATED_ATTRIBUTE0 (pAVPacket pkt);
extern "C" int __cdecl av_packet_split_side_data _DEPRECATED_ATTRIBUTE0 (pAVPacket pkt);
extern "C" char * __cdecl av_packet_side_data_name(AVPacketSideDataType _type);
extern "C" System::PByte __cdecl av_packet_pack_dictionary(Libavutil::pAVDictionary dict, Ffmpeg_types::pint size);
extern "C" int __cdecl av_packet_unpack_dictionary(const System::PByte data, int size, Libavutil::pAVDictionary &dict);
extern "C" void __cdecl av_packet_free_side_data(pAVPacket pkt);
extern "C" int __cdecl av_packet_ref(pAVPacket dst, const pAVPacket src);
extern "C" void __cdecl av_packet_unref(pAVPacket pkt)/* overload */;
extern "C" void __cdecl av_packet_unref(AVPacket &pkt)/* overload */;
extern "C" void __cdecl av_packet_move_ref(pAVPacket dst, pAVPacket src)/* overload */;
extern "C" void __cdecl av_packet_move_ref(pAVPacket dst, AVPacket &src)/* overload */;
extern "C" int __cdecl av_packet_copy_props(pAVPacket dst, const pAVPacket src);
extern "C" int __cdecl av_packet_make_refcounted(pAVPacket pkt);
extern "C" int __cdecl av_packet_make_writable(pAVPacket pkt);
extern "C" void __cdecl av_packet_rescale_ts(pAVPacket pkt, const Libavutil::AVRational tb_src, const Libavutil::AVRational tb_dst);
extern "C" pAVCodec __cdecl avcodec_find_decoder(AVCodecID id);
extern "C" pAVCodec __cdecl avcodec_find_decoder_by_name(const char * name);
extern "C" int __cdecl avcodec_default_get_buffer2(pAVCodecContext s, Libavutil::pAVFrame frame, int flags);
extern "C" void __cdecl avcodec_align_dimensions(pAVCodecContext s, Ffmpeg_types::pint width, Ffmpeg_types::pint height);
extern "C" void __cdecl avcodec_align_dimensions2(pAVCodecContext s, int &width, int &height, const Libavutil::TAVNDPArray &linesize_align);
extern "C" int __cdecl avcodec_enum_to_chroma_pos(int &xpos, int ypos, Libavutil::AVChromaLocation pos);
extern "C" Libavutil::AVChromaLocation __cdecl avcodec_chroma_pos_to_enum(int xpos, int ypos);
extern "C" int __cdecl avcodec_decode_audio4 _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, Libavutil::pAVFrame frame, int &got_frame_ptr, const pAVPacket avpkt);
extern "C" int __cdecl avcodec_decode_video2 _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, Libavutil::pAVFrame picture, int &got_picture_ptr, const pAVPacket avpkt);
extern "C" int __cdecl avcodec_decode_subtitle2(pAVCodecContext avctx, AVSubtitle &sub, int &got_sub_ptr, pAVPacket avpkt);
extern "C" int __cdecl avcodec_send_packet(pAVCodecContext avctx, const pAVPacket avpkt)/* overload */;
extern "C" int __cdecl avcodec_send_packet(pAVCodecContext avctx, AVPacket &avpkt)/* overload */;
extern "C" int __cdecl avcodec_receive_frame(pAVCodecContext avctx, Libavutil::pAVFrame frame);
extern "C" int __cdecl avcodec_send_frame(pAVCodecContext avctx, const Libavutil::pAVFrame frame);
extern "C" int __cdecl avcodec_receive_packet(pAVCodecContext avctx, pAVPacket avpkt)/* overload */;
extern "C" int __cdecl avcodec_receive_packet(pAVCodecContext avctx, AVPacket &avpkt)/* overload */;
extern "C" int __cdecl avcodec_get_hw_frames_parameters(pAVCodecContext avctx, Libavutil::pAVBufferRef device_ref, Libavutil::AVPixelFormat hw_pix_fmt, Libavutil::pAVBufferRef &out_frames_ref);
static const System::Int8 AV_PARSER_PTS_NB = System::Int8(0x4);
static const System::Int8 PARSER_FLAG_COMPLETE_FRAMES = System::Int8(0x1);
static const System::Int8 PARSER_FLAG_ONCE = System::Int8(0x2);
static const System::Int8 PARSER_FLAG_FETCHED_OFFSET = System::Int8(0x4);
static const System::Word PARSER_FLAG_USE_CODEC_TS = System::Word(0x1000);
extern "C" pAVCodecParser __cdecl av_parser_iterate(void * &opaque);
extern "C" pAVCodecParser __cdecl av_parser_next _DEPRECATED_ATTRIBUTE0 (const pAVCodecParser c);
extern "C" void __cdecl av_register_codec_parser _DEPRECATED_ATTRIBUTE0 (pAVCodecParser parser);
extern "C" pAVCodecParserContext __cdecl av_parser_init _DEPRECATED_ATTRIBUTE0 (int codec_id);
extern "C" int __cdecl av_parser_parse2(pAVCodecParserContext s, pAVCodecContext avctx, System::PByte &poutbuf, int &poutbuf_size, const System::PByte buf, int buf_size, __int64 pts, __int64 dts, __int64 pos);
extern "C" int __cdecl av_parser_change _DEPRECATED_ATTRIBUTE1("deprecated use AVBitStreamFilter") (pAVCodecParserContext s, pAVCodecContext avctx, System::PByte &poutbuf, int &poutbuf_size, const System::PByte buf, int buf_size, int keyframe);
extern "C" void __cdecl av_parser_close _DEPRECATED_ATTRIBUTE0 (pAVCodecParserContext s);
extern "C" pAVCodec __cdecl avcodec_find_encoder(AVCodecID id);
extern "C" pAVCodec __cdecl avcodec_find_encoder_by_name(const char * name);
extern "C" int __cdecl avcodec_encode_audio2 _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, pAVPacket avpkt, const Libavutil::pAVFrame frame, int &got_packet_ptr);
extern "C" int __cdecl avcodec_encode_video2 _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, pAVPacket avpkt, const Libavutil::pAVFrame frame, int &got_packet_ptr)/* overload */;
extern "C" int __cdecl avcodec_encode_video2 _DEPRECATED_ATTRIBUTE0 (pAVCodecContext avctx, AVPacket &avpkt, const Libavutil::pAVFrame frame, int &got_packet_ptr)/* overload */;
extern "C" int __cdecl avcodec_encode_subtitle(pAVCodecContext avctx, System::PByte buf, int buf_size, const pAVSubtitle sub);
extern "C" int __cdecl avpicture_alloc _DEPRECATED_ATTRIBUTE0 (pAVPicture picture, Libavutil::AVPixelFormat pix_fmt, int width, int height)/* overload */;
extern "C" int __cdecl avpicture_alloc _DEPRECATED_ATTRIBUTE0 (AVPicture &picture, Libavutil::AVPixelFormat pix_fmt, int width, int height)/* overload */;
extern "C" void __cdecl avpicture_free _DEPRECATED_ATTRIBUTE0 (pAVPicture picture);
extern "C" int __cdecl avpicture_fill(pAVPicture picture, const System::PByte ptr, Libavutil::AVPixelFormat pix_fmt, int width, int height);
extern "C" int __cdecl avpicture_layout _DEPRECATED_ATTRIBUTE0 (const pAVPicture src, Libavutil::AVPixelFormat pix_fmt, int width, int height, System::PByte dest, int dest_size);
extern "C" int __cdecl avpicture_get_size _DEPRECATED_ATTRIBUTE0 (Libavutil::AVPixelFormat pix_fmt, int width, int height);
extern "C" void __cdecl av_picture_copy _DEPRECATED_ATTRIBUTE0 (pAVPicture dst, const pAVPicture src, Libavutil::AVPixelFormat pix_fmt, int width, int height);
extern "C" int __cdecl av_picture_crop(pAVPicture dst, const pAVPicture src, Libavutil::AVPixelFormat pix_fmt, int top_band, int left_band);
extern "C" int __cdecl av_picture_pad _DEPRECATED_ATTRIBUTE0 (pAVPicture dst, const pAVPicture src, int height, int width, Libavutil::AVPixelFormat pix_fmt, int padtop, int padbottom, int padleft, int padright, int &color);
extern "C" void __cdecl avcodec_get_chroma_sub_sample _DEPRECATED_ATTRIBUTE0 (Libavutil::AVPixelFormat pix_fmt, int &h_shift, int &v_shift);
extern "C" unsigned __cdecl avcodec_pix_fmt_to_codec_tag(Libavutil::AVPixelFormat pix_fmt);
extern "C" int __cdecl avcodec_get_pix_fmt_loss(Libavutil::AVPixelFormat dst_pix_fmt, Libavutil::AVPixelFormat src_pix_fmt, int has_alpha);
extern "C" Libavutil::AVPixelFormat __cdecl avcodec_find_best_pix_fmt_of_list(const Libavutil::pAVPixelFormat pix_fmt_list, Libavutil::AVPixelFormat src_pix_fmt, int has_alpha, int &loss_ptr);
extern "C" Libavutil::AVPixelFormat __cdecl avcodec_find_best_pix_fmt_of_2(Libavutil::AVPixelFormat dst_pix_fmt1, Libavutil::AVPixelFormat dst_pix_fmt2, Libavutil::AVPixelFormat src_pix_fmt, int has_alpha, int &loss_ptr);
extern "C" Libavutil::AVPixelFormat __cdecl avcodec_find_best_pix_fmt2 _DEPRECATED_ATTRIBUTE0 (Libavutil::AVPixelFormat dst_pix_fmt1, Libavutil::AVPixelFormat dst_pix_fmt2, Libavutil::AVPixelFormat src_pix_fmt, int has_alpha, int &loss_ptr);
extern "C" Libavutil::AVPixelFormat __cdecl avcodec_default_get_format(pAVCodecContext s, const Libavutil::pAVPixelFormat fmt);
extern "C" NativeUInt __cdecl av_get_codec_tag_string _DEPRECATED_ATTRIBUTE0 (char * buf, NativeUInt buf_size, unsigned codec_tag);
extern "C" void __cdecl avcodec_string(char * buf, int buf_size, pAVCodecContext enc, int encode);
extern "C" char * __cdecl av_get_profile_name(const pAVCodec codec, int profile);
extern "C" char * __cdecl avcodec_profile_name(AVCodecID codec_id, int profile);
extern "C" int __cdecl avcodec_default_execute(pAVCodecContext c, Tavcodec_default_execute_func func, void * arg, int &ret, int count, int size);
extern "C" int __cdecl avcodec_default_execute2(pAVCodecContext c, Tavcodec_default_execute2_func func, void * arg, int &ret, int count);
extern "C" int __cdecl avcodec_fill_audio_frame(Libavutil::pAVFrame frame, int nb_channels, Libavutil::AVSampleFormat sample_fmt, const System::PByte buf, int buf_size, int align);
extern "C" void __cdecl avcodec_flush_buffers(pAVCodecContext avctx);
extern "C" int __cdecl av_get_bits_per_sample(AVCodecID codec_id);
extern "C" AVCodecID __cdecl av_get_pcm_codec(Libavutil::AVSampleFormat fmt, int be);
extern "C" int __cdecl av_get_exact_bits_per_sample(AVCodecID codec_id);
extern "C" int __cdecl av_get_audio_frame_duration(pAVCodecContext avctx, int frame_bytes);
extern "C" int __cdecl av_get_audio_frame_duration2(pAVCodecParameters par, int frame_bytes);
extern "C" void __cdecl av_register_bitstream_filter _DEPRECATED_ATTRIBUTE0 (pAVBitStreamFilter bsf);
extern "C" pAVBitStreamFilterContext __cdecl av_bitstream_filter_init _DEPRECATED_ATTRIBUTE0 (const char * name);
extern "C" int __cdecl av_bitstream_filter_filter _DEPRECATED_ATTRIBUTE0 (pAVBitStreamFilterContext bsfc, pAVCodecContext avctx, const char * args, System::PByte &poutbuf, int &poutbuf_size, const System::PByte buf, int buf_size, int keyframe);
extern "C" void __cdecl av_bitstream_filter_close _DEPRECATED_ATTRIBUTE0 (pAVBitStreamFilterContext bsf);
extern "C" pAVBitStreamFilter __cdecl av_bitstream_filter_next _DEPRECATED_ATTRIBUTE0 (const pAVBitStreamFilter f);
extern "C" pAVBitStreamFilter __cdecl av_bsf_get_by_name(const char * name);
extern "C" pAVBitStreamFilter __cdecl av_bsf_iterate(void * &opaque);
extern "C" pAVBitStreamFilter __cdecl av_bsf_next _DEPRECATED_ATTRIBUTE0 (void * &opaque);
extern "C" int __cdecl av_bsf_alloc(const pAVBitStreamFilter filter, pAVBSFContext &ctx);
extern "C" int __cdecl av_bsf_init(pAVBSFContext ctx);
extern "C" int __cdecl av_bsf_send_packet(pAVBSFContext ctx, pAVPacket pkt);
extern "C" int __cdecl av_bsf_receive_packet(pAVBSFContext ctx, pAVPacket pkt);
extern "C" void __cdecl av_bsf_flush(AVBSFContext &ctx);
extern "C" void __cdecl av_bsf_free(pAVBSFContext &ctx);
extern "C" Libavutil::pAVClass __cdecl av_bsf_get_class(void);
extern "C" pAVBSFList __cdecl av_bsf_list_alloc(void);
extern "C" void __cdecl av_bsf_list_free(pAVBSFList &lst);
extern "C" int __cdecl av_bsf_list_append(pAVBSFList lst, pAVBSFContext bsf);
extern "C" int __cdecl av_bsf_list_append2(pAVBSFList lst, const char * bsf_name, Libavutil::pAVDictionary &options);
extern "C" int __cdecl av_bsf_list_finalize(pAVBSFList &lst, pAVBSFContext &bsf);
extern "C" int __cdecl av_bsf_list_parse_str(const char * str, pAVBSFContext &bsf);
extern "C" int __cdecl av_bsf_get_null_filter(pAVBSFContext &bsf);
extern "C" void __cdecl av_fast_padded_malloc(void * ptr, unsigned &size, NativeUInt min_size);
extern "C" void __cdecl av_fast_padded_mallocz(void * ptr, unsigned &size, NativeUInt min_size);
extern "C" unsigned __cdecl av_xiphlacing(System::PByte s, unsigned v);
extern "C" void __cdecl av_register_hwaccel _DEPRECATED_ATTRIBUTE1("This function doesn't do anything") (void * hwaccel);
extern "C" void * __cdecl av_hwaccel_next _DEPRECATED_ATTRIBUTE1("AVHWaccel structures contain no user-serviceable parts, so this function should not be used") (const void * hwaccel);
extern "C" int __cdecl av_lockmgr_register(Tav_lockmgr_register_cb_func cb);
extern "C" Libavutil::AVMediaType __cdecl avcodec_get_type(AVCodecID codec_id);
extern "C" char * __cdecl avcodec_get_name(AVCodecID id);
extern "C" int __cdecl avcodec_is_open(pAVCodecContext s);
extern "C" int __cdecl av_codec_is_encoder(const pAVCodec codec);
extern "C" int __cdecl av_codec_is_decoder(const pAVCodec codec);
extern "C" pAVCodecDescriptor __cdecl avcodec_descriptor_get(pAVCodecID id);
extern "C" pAVCodecDescriptor __cdecl avcodec_descriptor_next(const pAVCodecDescriptor prev);
extern "C" pAVCodecDescriptor __cdecl avcodec_descriptor_get_by_name(const void *name);
extern "C" pAVCPBProperties __cdecl av_cpb_properties_alloc(Ffmpeg_types::psize_t size);
extern "C" int __cdecl av_ac3_parse_header(const System::PByte buf, NativeUInt size, System::Byte &bitstream_id, System::Word &frame_size);
extern "C" int __cdecl av_adts_header_parse(const System::PByte buf, unsigned &samples, System::Byte &frames);
extern "C" int __cdecl av_jni_set_java_vm(void * vm, void * log_ctx);
extern "C" void * __cdecl av_jni_get_java_vm(void * log_ctx);
extern "C" pAVVorbisParseContext __cdecl av_vorbis_parse_init(const System::PByte extradata, int extradata_size);
extern "C" void __cdecl av_vorbis_parse_free(pAVVorbisParseContext &s);
static const System::Int8 VORBIS_FLAG_HEADER = System::Int8(0x1);
static const System::Int8 VORBIS_FLAG_COMMENT = System::Int8(0x2);
static const System::Int8 VORBIS_FLAG_SETUP = System::Int8(0x4);
extern "C" int __cdecl av_vorbis_parse_frame_flags(pAVVorbisParseContext s, const System::PByte buf, int buf_size, int &flags);
extern "C" int __cdecl av_vorbis_parse_frame(pAVVorbisParseContext s, const System::PByte buf, int buf_size);
extern "C" void __cdecl av_vorbis_parse_reset(pAVVorbisParseContext s);
extern "C" pAVDCT __cdecl avcodec_dct_alloc(void);
extern "C" int __cdecl avcodec_dct_init(pAVDCT p);
extern "C" Libavutil::pAVClass __cdecl avcodec_dct_get_class(void);
extern "C" pAVMediaCodecContext __cdecl av_mediacodec_alloc_context(void);
extern "C" int __cdecl av_mediacodec_default_init(pAVCodecContext avctx, pAVMediaCodecContext ctx, void * surface);
extern "C" void __cdecl av_mediacodec_default_free(pAVCodecContext avctx);
extern "C" int __cdecl av_mediacodec_release_buffer(pAVMediaCodecBuffer buffer, int render);
extern "C" int __cdecl av_mediacodec_render_buffer_at_time(pAVMediaCodecBuffer buffer, __int64 time);
extern "C" pFFTContext __cdecl av_fft_init(int nbits, int inverse);
extern "C" void __cdecl av_fft_permute(pFFTContext s, pFFTContext z);
extern "C" void __cdecl av_fft_calc(pFFTContext s, pFFTComplex z);
extern "C" void __cdecl av_fft_end(pFFTContext s);
extern "C" pFFTContext __cdecl av_mdct_init(int nbits, int inverse, double scale);
extern "C" void __cdecl av_imdct_calc(pFFTContext s, pFFTSample output, const pFFTSample input);
extern "C" void __cdecl av_imdct_half(pFFTContext s, pFFTSample output, const pFFTSample input);
extern "C" void __cdecl av_mdct_calc(pFFTContext s, pFFTSample output, const pFFTSample input);
extern "C" void __cdecl av_mdct_end(pFFTContext s);
extern "C" pRDFTContext __cdecl av_rdft_init(int nbits, RDFTransformType trans);
extern "C" void __cdecl av_rdft_calc(pRDFTContext s, pFFTSample data);
extern "C" void __cdecl av_rdft_end(pRDFTContext s);
extern "C" pDCTContext __cdecl av_dct_init(int nbits, DCTTransformType _type);
extern "C" void __cdecl av_dct_calc(pDCTContext s, pFFTSample data);
extern "C" void __cdecl av_dct_end(pDCTContext s);
static const System::Word DV_PROFILE_BYTES = System::Word(0x1e0);
extern "C" pAVDVProfile __cdecl av_dv_frame_profile(const pAVDVProfile sys, const System::PByte frame, unsigned buf_size);
extern "C" pAVDVProfile __cdecl av_dv_codec_profile(int width, int height, Libavutil::AVPixelFormat pix_fmt);
extern "C" pAVDVProfile __cdecl av_dv_codec_profile2(int width, int height, Libavutil::AVPixelFormat pix_fmt, const Libavutil::AVRational frame_rate);
static const System::Int8 MAX_DWT_LEVELS = System::Int8(0x5);
extern "C" int __cdecl av_dirac_parse_sequence_header(pAVDiracSeqHeader &dsh, const System::PByte buf, NativeUInt buf_size, void * log_ctx);
}	/* namespace Libavcodec */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_LIBAVCODEC)
using namespace Libavcodec;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// LibavcodecHPP
